我有POCO對象,通過在存儲庫中查找ID來引用對方。我不希望對象之間有強烈的引用,因爲存儲庫具有可能驅逐對象的緩存策略。其他引用它們的對象應該通過存儲庫重新加載它們。我使用AutoFac作爲我的IoC容器。弱參考與Autofac解決?
很簡單的例子 - Region對象引用的貨幣對象:
class Region
{
...
public Currency GetCurrency()
{
... Get the right Currency object
}
...
}
我一直在兩個方面嘗試做到這一點。首先是要求AutoFac每次解析貨幣存儲庫,以便我可以調用Find(id)。
第二個是WeakReference,我檢查.IsAlive,看看我是否可以返回.Target,或者如果我需要解決存儲庫並調用Find,併爲我所得到的WeakReference做一個WeakReference。
我一直在研究WeakReference施加的小額開銷,但我確信如何比較每次要求AutoFac進行解析。
想法?
編輯:存儲庫需要花費任何時間/精力來回答.find - 我更感興趣的是哪些代碼更昂貴,WeakReference的開銷或AutoFac分辨率。
換句話說,它可能並不重要,但如果你真的在乎嘗試兩種選擇並比較結果 – 2011-05-09 18:17:59