私はNinjectを使用しており、通常のコンストラクターではなく静的コンストラクターメソッドを使用するライブラリを持つという問題に直面しています:
Kernel.Bind<IDocumentService>().ToMethod(
x => CoDocumentService.Create(x.Kernel.Get<IMessage>(),x.Kernel.Get<IClientChannel>())
).InRequestScope();
ここでの問題は、IMessage
とが(つまり、 )IClientChannel
の種類に応じて実装がわずかに異なることです。ただし、 /のコンテキストを区別することはできません。そのようなインスタンスがどこで使用されるかを知る方法が必要です。Service
IDocumentService
IAccountService
IMessage
IClientChannel
this.Kernel
.Bind<IClientChannel>()
.To<Something>()
.WithPropertyValue("Something",x => {"Depends on where this instance is going to be used"});
誰かアイデアがありますか?