在Visual Studio中设计时列出所有公共类属性和字段

时间:2011-05-20 10:11:02

标签: c# visual-studio-2010 ide code-generation

是否可以在Visual Studio IDE中获取某个类型的所有公共成员的列表?

编写测试时,我经常需要将类/结构中的所有公共字段/ setter设置为某个值。

如果我能打字,最好的事情就是:

MyType x = new MyType();

然后自动生成类似

的内容
x.StrProp = "StrProp";
x.IntProp = 0;
x.DtProp = DateTime.Now;
x.OtherProp = new Othertype()

但只是获取一个列表然后使用列编辑会有很多帮助

修改 发现使用宏

并不是很困难

1 个答案:

答案 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中的外部工具,使其更容易与当前项目一起运行。