C# 如何获取StructureMap以解析特定实例?
在下面的代码中,我只希望StructureMap(v2.6.4.1)将C# 如何获取StructureMap以解析特定实例?,c#,structuremap,C#,Structuremap,在下面的代码中,我只希望StructureMap(v2.6.4.1)将IMyService的所有请求映射到一个特定的myService实例。以下是失败的代码: IMyService myService = ...; ObjectFactory.Configure(r => { r.For<IMyService>().Use(myService) }); IMyService resolvedInstance = ObjectFactory.GetInstance&l
IMyService
的所有请求映射到一个特定的myService
实例。以下是失败的代码:
IMyService myService = ...;
ObjectFactory.Configure(r =>
{
r.For<IMyService>().Use(myService)
});
IMyService resolvedInstance = ObjectFactory.GetInstance<IMyService>();
我尝试过使用.Singleton()
,。默认值是这个
,以及ObjectFactory.Inject
,但都没有成功
我做错了什么
更新:
在我的例子中,“myService”被分配了一个从System.ServiceModel.ChannelFactory.CreateChannel()
返回的实例,在运行时,调试器显示它属于System.runtime.Remoting.Proxies.\uu TransparentProxy
我发现如果我使用
use(()=>myService)
,它是有效的。我仍然想知道为什么在这种情况下它会失败。您遗漏了一个关键细节:您在myService变量中到底存储了什么?从错误消息来看,似乎存在类型不匹配。您遗漏了一个关键细节:您在myService变量中存储了什么?从错误消息看,似乎存在类型不匹配。错误似乎表明您正在将IMyService
对象连接到IMyService
接口。您能检查一下,如果将变量定义为,例如,MyService
类类型,错误是否仍会重现?在这种情况下,我试图将其连接到代理类,因此没有具体的类可处理。但是。。。代理类必须实现IMyService
,不是吗?抱歉,我肯定我遗漏了什么。错误似乎表明您正在将IMyService
对象连接到IMyService
接口。您能检查一下,如果将变量定义为,例如,MyService
类类型,错误是否仍会重现?在这种情况下,我试图将其连接到代理类,因此没有具体的类可处理。但是。。。代理类必须实现IMyService
,不是吗?很抱歉,我肯定我遗漏了什么。在我的例子中,它是从System.ServiceModel.ChannelFactory.CreateChannel()
返回的一个实例,在运行时,调试器显示它的类型为System.Runtime.Remoting.Proxies.\uu TransparentProxy
。在我的例子中,它是从System.ServiceModel.ChannelFactory.CreateChannel()
返回的实例,在运行时,调试器显示它的类型为System.Runtime.Remoting.Proxies.\uu TransparentProxy
。
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