What is nHibernate CollectionProxy

本文关键字:CollectionProxy nHibernate is What | 更新日期: 2023-09-27 18:14:47

我试图理解在nHibernate暴露的CollectionProxy。它只是ICollection返回列表集合的扩展吗?如果是,为什么要使用代理模式?

What is nHibernate CollectionProxy

您正在观察的是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可扩展性框架的一个特性…