![](/img/trans.png)
[英]How to get StructureMap to return a specific instance for a requested type
[英]How do I get StructureMap to resolve a specific instance?
在下面的代码中,我只希望StructureMap(v2.6.4.1)将对IMyService的所有请求IMyService
到特定的myService
实例。 这是失败的代码:
IMyService myService = ...;
ObjectFactory.Configure(r =>
{
r.For<IMyService>().Use(myService)
});
IMyService resolvedInstance = ObjectFactory.GetInstance<IMyService>();
对Configure
的调用失败,并显示以下错误:
Type Instance 'dfa538d3-593d-4ca9-9c39-4b3538023483' (Object:
MyServices.IMyService) cannot be plugged into type MyServices.IMyService,
MyServices, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
我尝试使用.Singleton()
.TheDefault.IsThis
和ObjectFactory.Inject
等,但都没有成功。
我究竟做错了什么?
更新:
在我的情况下,为“ myService”分配了一个从System.ServiceModel.ChannelFactory<IMyService>.CreateChannel()
返回的实例,在运行时,调试器显示该实例的类型为System.Runtime.Remoting.Proxies.__TransparentProxy
。
我发现如果我使用Use(() => myService)
,它会起作用。 我仍然想知道为什么在这种情况下失败了。
您省略了一个关键的细节:您究竟将什么存储在myService变量中? 从错误消息中,看起来好像类型不匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.