2012-06-27 29 views
7

Autofacでは、.AsImplementedInterfaces()または.AsingleInstance()と一緒に呼び出される.As <>()を使用して、複数のインターフェイスを同じインスタンスに簡単に解決できます。これもTinyIoCで行うことができますか?私は、同じインターフェースの複数の実装を登録する方法しか見つけられませんでしたが、登録などを連鎖させる方法はありません。TinyIoC:1つのインスタンスに複数のインターフェイスを登録します。

これはIoCコンテナにとって非常に重要な機能であると私は理解していますか?

答えて

9

私はあなたが

public class MyThing : IFoo, IBar 
{ 
} 

のようなものがあり、以下が互いに同じインスタンスを返すようにしたい正しく理解していた場合:

Resolve<IFoo>(); 
Resolve<IBar>(); 

もしそうなら、それが可能だが、それはです少し醜い:

container.Register<IFoo, MyThing>(); 
container.Register<IBar>((c,p) => c.Resolve<IFoo>() as IBar); 

あなたはおそらくそれをいくつかのより良い構文にすることができますが、フードの下で起こっていることは事実上の代理人です。

+0

ありがとうございました!私はこのようなものを見つけようとしていましたが、昨夜私の心をかなり補完することはできませんでした。 – TeaDrivenDev

関連する問題