C# 如何获取StructureMap以解析特定实例?

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

在下面的代码中,我只希望StructureMap(v2.6.4.1)将
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