我的類是從UnityContainer繼承(從Unity 2.0),這裏是源代碼:遞歸在Unity和Dispose模式實現
public class UnityManager : UnityContainer
{
private UnityManager()
{
_context = new MyDataClassesDataContext();
// ...
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
_context.Dispose();
}
base.Dispose(disposing);
}
private readonly CMCoreDataClassesDataContext _context;
}
當Dispose方法被調用UnityManager類拖放到遞歸的實例。 ..爲什麼?據我所知base.Dispose應該只調用基類的Dispose方法...不是嗎?誰回電UnityManager的Dispose(bool)?如何防止呢?
謝謝。
你不應該註冊與自己的容器。詳細信息請參見http://unity.codeplex.com/Thread/View.aspx?ThreadId=46415#Post156036。 – 2010-06-03 11:40:32
除了以下方面之外,沒有其他細節:從未註冊過容器。它已經爲你完成了(在Unity 1.2中是新的),所以你不會獲得任何東西,並且在處理時你會得到一個堆棧溢出。只需在對象中添加對IUnityContainer的依賴關係,它就可以工作。 但是這解釋了我很多。 :) 謝謝! – Budda 2010-06-04 20:50:14