是否可以在Visual Studio IDE中获取某个类型的所有公共成员的列表?
编写测试时,我经常需要将类/结构中的所有公共字段/ setter设置为某个值。
如果我能打字,最好的事情就是:
MyType x = new MyType();
然后自动生成类似
的内容x.StrProp = "StrProp";
x.IntProp = 0;
x.DtProp = DateTime.Now;
x.OtherProp = new Othertype()
但只是获取一个列表然后使用列编辑会有很多帮助
修改 发现使用宏
并不是很困难答案 0 :(得分:1)
如何启动调试会话,在开头打破,然后调用类似
的内容typeof(System.Windows.Forms.Control)
.GetProperties(System.Reflection.BindingFlags.Public |
System.Reflection.BindingFlags.Instance)
在即时窗口中? :)
结果是这样的:
{System.Reflection.PropertyInfo[0x0000004a]}
[0x00000000]: {System.Windows.Forms.AccessibleObject AccessibilityObject}
[0x00000001]: {System.String AccessibleDefaultActionDescription}
[0x00000002]: {System.String AccessibleDescription}
[0x00000003]: {System.String AccessibleName}
[0x00000004]: {System.Windows.Forms.AccessibleRole AccessibleRole}
[0x00000005]: {Boolean AllowDrop}
不幸的是,您无法在即时窗口中使用lambda表达式 - 这样可以更轻松地以更简单的格式获取属性。但是,我建议编写一个非常简单的工具来加载你的程序集,让你选择类型并只输出所需格式的代码(和/或将其复制到剪贴板或VS编辑器中)。该工具至少可以满足您的需求。然后配置工具,例如作为Visual Studio中的外部工具,使其更容易与当前项目一起运行。