假设我有C#代码行:
var myList = new List {1,2,3};
然后我将“myList”放入Watch窗口,然后向下拖动列表的第1项,监视窗口创建一个新行,其中包含此数据成员的内部名称,在本例中为
(new System.Collections.Generic.Mscorlib_CollectionDebugView(myList))。Items [0]
我的问题是,有没有办法以编程方式从EnvDTE的Expression的DataMember获取此内部名称?
非常感谢!
答案 0 :(得分:0)
我没有完整的配方,但我看到List<T>
将自定义属性System.Diagnostics.DebuggerTypeProxyAttribute
设置为ProxyTypeName
设置为System.Collections.Generic.Mscorlib_CollectionDebugView'1
。据我所知,这意味着在监视窗口中您实际看到的是代理类型,而不是原始代理类型。也许这可以指出你正确的方向。
获取我所做的属性:
myList.GetType().GetCustomAttributes(false);
答案 1 :(得分:0)