我有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