1

假设我有 C# 代码行:

var myList = 新列表 {1,2,3};

然后我将“myList”放在监视窗口中,然后将列表的第一项向下拖动,监视窗口将创建一个包含该数据成员内部名称的新行,在这种情况下为

(新 System.Collections.Generic.Mscorlib_CollectionDebugView(myList)).Items[0]

我的问题是,有没有办法以编程方式从 EnvDTE 的 Expression 的 DataMember 中获取这个内部名称?

非常感谢!

4

2 回答 2

0

我没有完整的配方,但我看到它List<T>的自定义属性System.Diagnostics.DebuggerTypeProxyAttribute设置ProxyTypeNameSystem.Collections.Generic.Mscorlib_CollectionDebugView'1。据我了解,这意味着在监视窗口中您实际上会看到该代理类型,而不是原始类型。也许这可以为您指明正确的方向。

要获得我所做的属性:

myList.GetType().GetCustomAttributes(false);
于 2010-12-07T15:18:10.597 回答
0

不,你不能。你必须自己动手。

于 2011-02-16T22:21:53.123 回答