次のコードでは、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)
。この特定のケースで失敗する理由を知りたいです。