1

次のコードでは、StructureMap (v2.6.4.1) がすべてのリクエストを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)。この特定のケースで失敗する理由を知りたいです。

4

1 に答える 1

1

重要な詳細を省略しました: myService 変数に正確に何を格納していますか? エラー メッセージから、型の不一致があるようです。

于 2013-05-30T03:42:45.277 に答える