Visual Studio将类的所有属性转储到编辑器中

时间:2014-08-31 09:43:53

标签: c# visual-studio visual-studio-2012 resharper add-in

好的,这里有一个为视觉工作室提供了许多方便的小插件的人,或者可以帮助按键序列。

假设我有一个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,我快速浏览了一个专门做这个的实用程序,但我找不到一个。有人可以帮忙吗?

5 个答案:

答案 0 :(得分:9)

您可以使用属于Visual Studio 2015的the C# Interactive Window

> #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}"); }

当然这可以缩短,但这会告诉你如何使用它。

另外,要设置类所在的项目,可以右键单击Solution Explorer,然后选择“使用项目初始化交互”。

答案 1 :(得分:3)

您所要做的就是在Visual Studio的立即窗口中打印出对象,您不需要R#。

e.g。 ?myPerson

所有属性都会按照您的要求打印出来。

List of Values of a Class

答案 2 :(得分:3)

sample command有一个Visual Commander(3.复制到Visual Studio文本编辑器中所选类的剪贴板属性),您可以为场景进一步自定义。

答案 3 :(得分:3)

C#立即窗口很棒!这是一个单行程序,可以打印出所需格式的属性。只需使用它来满足您的需求:

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

答案 4 :(得分:3)

以下是Visual Studio 2017中适合我的内容:

使用

打开类编辑器

Cntrl + Shift + C

然后在弹出的Class View窗口中选择包含所显示结构中所需属性的类名。该类的所有属性都将在下面的窗口窗格中列出。按住Shift并单击第一个属性,然后按住Shift键并单击列表中的最后一个属性。然后右键单击并从弹出菜单中选择复制选项。您可以从那里粘贴到Visual Studio中。第一个粘贴将如下所示:

Person.Name Person.Age

从那里你可以在每个房产后面放一个回车,这样它们就会分开来。