2014-08-31 57 views
4

好的,這裏有一個適合Visual Studio使用的小插件,或者可以用於按鍵序列的幫助。Visual Studio將類的所有屬性轉儲到編輯器中

比方說,我有一個Person類:

class Person 
{ 
    string Name { get; set; } 
    int Age { get; set; } 
} 

而且我很忙編碼就能愉快。我經常會遇到需要爲該類的所有屬性賦值的情況,或者將屬性的所有值賦予其他值。

public override void CopyTo(Person myPerson) 
{ 
    myPerson.Name = "XXX"; 
    myPerson.Age = 11; 
} 

我想生成該部分:

myPerson.Name 
myPerson.Age 

即只需在一個小列表中將myPerson的所有屬性轉儲到彼此之下。在Visual Studio編輯器中。

我安裝了resharper,並且快速瀏覽了一個專門做這件事的工具,但是我找不到它。任何人都可以幫忙

回答

2

有一個sample command(3.複製在Visual Studio文本編輯器中選定類的剪貼板屬性)爲Visual Commander,您可以進一步自定義您的場景。

+0

這是迄今爲止的最佳答案,如果沒有更好的答案,我會很快接受它。 – user230910 2014-09-01 09:21:32

+0

感謝您的答覆,我試圖執行它,但我設法讓自己陷入困境。我在這裏提出了後續問題,http://stackoverflow.com/questions/25724189/in-visual-studio-add-in-how-can-i-retrieve-the-properties-of-the-text-selectio ?lq = 1 – user230910 2014-09-08 12:31:47

+1

如果您在2017年閱讀本文,[@ Erno's answer](https://stackoverflow.com/a/35622143/325521)是要走的路。 – Shiva 2017-06-28 07:04:45

0

您只需要在Visual Studio的立即窗口中打印出對象,就不需要R#。

例如?myPerson

並且您的所有屬性都將按照您的要求打印出來。

List of Values of a Class

+0

感謝您的嘗試,但我想只得到屬性(不是值),而我還在寫代碼(而不是在運行時) – user230910 2014-09-01 09:20:09

5

您可以使用the C# Interactive Window這是Visual Studio的2015年

> #r "C:/MyApp/bin/Debug/Foo.dll" 
> using MyApp; 
> var personType = typeof(Person); 
> var personProperties = personType.GetProperties(); 
> foreach(var personProperty in personProperty) { Console.WriteLine($"{nameof(Person)}.{personProperty.Name}"); } 

當然,這可以被縮短的一部分,但是這表明你如何使用它。

也要設置類所在的項目,可以右鍵單擊解決方案資源管理器,然後選擇「使用項目初始化交互」。

+0

這真是太棒了。今天剛剛開始瞭解C#交互式窗口,此解決方案中的代碼就像老闆一樣工作:)謝謝@Erno! – Shiva 2017-06-28 07:00:15

+0

'Console.WriteLine($「{personProperty.PropertyType.Name} {nameof(Person)}。{personProperty.Name}'給你屬性類型。 – 2017-10-22 08:14:28

0

C#立即窗口很棒!這是一種用於打印所需格式的屬性的單行程序。只要發揮它以滿足您的需求:

typeof(MyApp.Person).GetProperties().Select(x => x.Name).Aggregate((x, y)=>x +", " +y) 
相關問題