簡體   English   中英

在設計時列出Visual Studio中的所有公共類屬性和字段

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM