我一直在努力让NopCommerce获得注册界面。
这一行
this._connectionService = EngineContext.Current.Resolve<IConnectionService>();
导致错误
无法解析实例,并且无法从此LifetimeScope创建嵌套生命周期,因为它已经被处理掉了。
我已在DependencyRegistrar
中注册了该界面builder.RegisterType<ConnectionService>().As<IConnectionService>().InstancePerLifetimeScope();
问题是它在构造函数被调用一次时有效,但是当再次调用构造函数时,接口已被释放,构造函数如下所示 -
public ClientHub()
{
this._connectionService = EngineContext.Current.Resolve<IConnectionService>();
}
默认NopCommerce已经有很多注册界面,所以我尝试使用看起来像缓存版本的东西
builder.RegisterType<CustomerActivityService>().As<ICustomerActivityService>()
.WithParameter(ResolvedParameter.ForNamed<ICacheManager>("nop_cache_static"))
.InstancePerLifetimeScope();
但是在尝试像这样使用ConnectionService时仍然会出错。
我尝试在构建器上使用多种不同的方法,例如
InstancePerHttpRequest();
和
InstancePerDependency();
但是当第二次调用构造函数时,所有这些都被处理掉了,我确实会向NopCommerce寻求帮助,但没有运气。
任何指导/帮助都会很棒!
答案 0 :(得分:0)
public ClientHub()
{
this._connectionService = EngineContext.Current.Resolve<IConnectionService>();
}
好吧,这可能会产生一个问题,你正试图解决依赖问题,但这种情况搞得一团糟
它可能是:
private readonly IConnectionService _connectionService
public ClientHub(IConnectionService connectionService)
{
this._connectionService = connectionService;
}
或者它可能只是:
private readonly IConnectionService _connectionService = EngineContext.Current.Resolve<IConnectionService>();
而不是构造函数。