DIを使用してオブジェクトを管理する方法を考えています。私がクラスを持っているとしましょう
class Foo : IFoo, IDisposable
{
// ...
}
次に、このクラスは別のクラスに注入されます
class Bar
{
public Bar(IFoo foo)
{
this.Foo = foo
}
IFoo Foo { get; set; }
}
次に、これをいくつかのスコープでバインドします(私の例ではMVCとNinjectを使用しています)
this.Bind<IFoo>().To<Foo>().InRequestScope();
依存性注入フレームワークはのライフサイクルを処理するので、FooIDispoableを実装する必要がありBarますか?私の考えでは、DIはのライフサイクルを管理しているFooので、別のクラスがを使用している場合に備えて、それに触れないでくださいFoo。また、使い捨てオブジェクトはBarコンストラクターパラメーターとして渡されるため、使い捨てオブジェクトをラップBarしないため、ガベージコレクション後にの呼び出し元がどのように使用したいかがわかりません。これは正しいですか?BarFooBar