我使用
等代码成功地在SM中使用了开放式泛型For(typeof(IConnectedClient<,>)).Use(typeof(WcfConnectedClient<,>));
然后我需要开始使用嵌套容器进行&#34;会话&#34;我的申请范围。 在此嵌套容器中创建的每个IConnectedClient
我都需要是唯一的,并且还会自动处理。
不幸的是,经过多次实验,我无法满足这些要求。
所有这些都无法实际返回唯一实例,但实例处理掉了:
For(typeof(IConnectedClient<,>)).Use(typeof(WcfConnectedClient<>)).AlwaysUnique();
For(typeof(IConnectedClient<,>)).Use(typeof(WcfConnectedClient<,>)).SetLifecycleTo<TransientLifecycle>();
For(typeof(IConnectedClient<,>)).LifecycleIs(new TransientLifecycle()).Use(typeof(WcfConnectedClient<,>));
For(typeof(IConnectedClient<,>)).LifecycleIs(new TransientLifecycle()).Use(typeof(WcfConnectedClient<,>)).LifecycleIs<TransientLifecycle>();
这会返回唯一的实例,但它们不会被处理掉(我希望perRequest不是我想要的):
For(typeof(IConnectedClient<,>)).LifecycleIs(new UniquePerRequestLifecycle()).Use(typeof(WcfConnectedClient<,>));
如何将open-generic配置为可以创建新实例并将它们配置为嵌套容器?
答案 0 :(得分:0)
我已升级到SM 4.5.x,现在可以使用以下内容:
For(typeof(IConnectedClient<,>)).LifecycleIs(new UniquePerRequestLifecycle()).Use(typeof(WcfConnectedClient<,>));
所以看起来这可能是3.1.4版本中的一个错误。