What is nHibernate CollectionProxy
本文关键字:CollectionProxy nHibernate is What | 更新日期: 2023-09-27 18:14:47
我试图理解在nHibernate暴露的CollectionProxy。它只是ICollection返回列表集合的扩展吗?如果是,为什么要使用代理模式?
您正在观察的是Visual study可扩展性生态系统。首先,如我们所见,该类位于名称空间中:
namespace NHibernate.DebugHelpers
这意味着,它只用于调试目的。
它是如何工作的?
首先,我们可以看到public object[] Items
上有一些属性声明,像这样:
[DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
public object[] Items
{
..
这是指示Visual Studio调试器:
在观察集合(如枚举名称所示)时隐藏根。实际上,它将在调试窗口中保存一行。我们将只看到该集合中的项…
怎么接?
只需使用这个帮助器作为另一个属性声明,例如在PersistentGenericBag上:
[DebuggerTypeProxy(typeof (CollectionProxy<>))]
public class PersistentGenericBag<T> : PersistentBag, IList<T>
…就是这样……没什么特别的…只是Visual Studio可扩展性框架的一个特性…