0

だから私は少し前に.NETの本の依存性注入を読んだ。今DICを使おうとしています。ただ、よくわからないことがあります。2つの例:

1.次のようなシングルトン静的メソッドを使用する古いコードまたはサードパーティのdllがある場合:

var objTool = ThirdPartyTool.GetInstance();
objTool.DoStuff();
...

2.一時オブジェクトを作成するメソッドにコードがある場合:

var tempOrder = new Order();
tempOrder.Total = strArray.[0];
tempOrder.ItemId = strArray.[1];
tempOrder.ShipAddress = strArray[2];
if(Customer.HasConfirmedOrder) { Customer.Order = tempOrder; }
 ...

どちらの場合も、DICの世界に入る前に、これらのオブジェクトはスコープ外のときに自然にGC収集されることを知っています。または、呼び出すDispose()がある場合は、オブジェクトを使用した後、どこかで呼び出す責任があります。 。

DICはそれらをどのように扱いますか?(私は.NET 4 MVC 3プロジェクトでNinjectを実行していますが、他の言語/プロジェクトとDICはほとんど同じ構造を持っていると思います)

4

1 に答える 1

1

提供した例のように、オブジェクトがDIフレームワークによって管理されていない場合は、その存続期間を管理し、必要に応じてDisposeを呼び出します(特にこのオブジェクトがIDisposableを実装している場合)。

だからあなたの質問に答えるために:

DICはそれらをどのように扱いますか?

それはそれらを全く扱いません。DIフレームワークはそれらの存在すら知りません。

DIフレームワークは、明示的に登録したオブジェクトを管理する役割を果たします。

于 2012-07-07T14:58:36.193 に答える