Autofac を使用すると、.AsImplementedInterfaces() またはチェーン化された .As<>() 呼び出しと .SingleInstance() を使用して、複数のインターフェイスを同じインスタンスに非常に簡単に解決できます。これは TinyIoC でも実行できますか? 同じインターフェースの複数の実装を登録する方法しか見つけられませんでしたが、登録などを連鎖させる方法はありません。
私の理解では、これは IoC コンテナーにとって非常に重要な機能ですよね。
Autofac を使用すると、.AsImplementedInterfaces() またはチェーン化された .As<>() 呼び出しと .SingleInstance() を使用して、複数のインターフェイスを同じインスタンスに非常に簡単に解決できます。これは TinyIoC でも実行できますか? 同じインターフェースの複数の実装を登録する方法しか見つけられませんでしたが、登録などを連鎖させる方法はありません。
私の理解では、これは IoC コンテナーにとって非常に重要な機能ですよね。
私が正しく理解しているなら、あなたは次のようなものを持っています
public class MyThing : IFoo, IBar
{
}
そして、次のものが互いに同じインスタンスを返すようにします。
Resolve<IFoo>();
Resolve<IBar>();
もしそうなら、それは可能ですが、それは少し醜いです:
container.Register<IFoo, MyThing>();
container.Register<IBar>((c,p) => c.Resolve<IFoo>() as IBar);
必要に応じて、おそらくそれをより適切な構文にラップすることもできますが、そのファクトリ デリゲートは、実質的に内部で発生するものです。