![](/img/trans.png)
[英]Is there a way, at design time, to initialize an object with all properties in Visual Studio 2010?
[英]List all public class properties and fields at design time in Visual Studio
是否可以在Visual Studio IDE中獲得該類型的所有公共成員的列表?
在編寫測試時,我經常需要將類/結構中的所有公共字段/設置者設置為某個值。
最好的辦法是輸入以下內容:
MyType x = new MyType();
然后自動生成類似
x.StrProp = "StrProp";
x.IntProp = 0;
x.DtProp = DateTime.Now;
x.OtherProp = new Othertype()
但是僅獲取列表然后使用列編輯會很有幫助
編輯:發現使用宏並不是很難
如何開始調試會話,在開始時中斷,然后調用類似
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中的外部工具,以使其更易於在當前項目中運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.