繁体   English   中英

如何获取StructureMap来解析特定实例?

[英]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.IsThisObjectFactory.Inject等,但都没有成功。

我究竟做错了什么?

更新:

在我的情况下,为“ myService”分配了一个从System.ServiceModel.ChannelFactory<IMyService>.CreateChannel()返回的实例,在运行时,调试器显示该实例的类型为System.Runtime.Remoting.Proxies.__TransparentProxy

我发现如果我使用Use(() => myService) ,它会起作用。 我仍然想知道为什么在这种情况下失败了。

您省略了一个关键的细节:您究竟将什么存储在myService变量中? 从错误消息中,看起来好像类型不匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM