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();
依存性注入フレームワークはのライフサイクルを処理するので、Foo
IDispoableを実装する必要がありBar
ますか?私の考えでは、DIはのライフサイクルを管理しているFoo
ので、別のクラスがを使用している場合に備えて、それに触れないでくださいFoo
。また、使い捨てオブジェクトはBar
コンストラクターパラメーターとして渡されるため、使い捨てオブジェクトをラップBar
しないため、ガベージコレクション後にの呼び出し元がどのように使用したいかがわかりません。これは正しいですか?Bar
Foo
Bar