Visual Studio/C#:包含/合并文件

Visual Studio/C#:包含/合并文件,c#,visual-studio,visual-studio-2013,C#,Visual Studio,Visual Studio 2013,在一个C#项目中,我需要添加许多类,每个类都有10个公共属性,每个类添加几个特定属性。 预计共同财产的数量将增加到20个 我想: 拥有一个基类/文件,该基类/文件将保存所有公共属性 创建那些不继承基类的多个类,新类具有基类/文件的公共属性 在“派生”类中,我可以添加新属性 将来,当公共属性列表增加时,我只需编辑基类/文件,并将它们自动插入到所有“后代”类中 基本上,我需要在我的文件中插入一个占位符,该占位符链接到一个外部文件,并在编译时将内容添加到类中,就像\include指令在C++中工作一样

在一个C#项目中,我需要添加许多类,每个类都有10个公共属性,每个类添加几个特定属性。 预计共同财产的数量将增加到20个

我想:

  • 拥有一个基类/文件,该基类/文件将保存所有公共属性
  • 创建那些不继承基类的多个类,新类具有基类/文件的公共属性
  • 在“派生”类中,我可以添加新属性
  • 将来,当公共属性列表增加时,我只需编辑基类/文件,并将它们自动插入到所有“后代”类中
  • 基本上,我需要在我的文件中插入一个占位符,该占位符链接到一个外部文件,并在编译时将内容添加到类中,就像
    \include
    指令在
    C++
    中工作一样


    所以我需要继承而不派生类,这是有意义的。

    可能你能得到的秘密是。您仍然需要在“后代”类中实现属性。不过,当主文件发生更改时,自己编写一个脚本来实现它们作为自动属性是相当容易的。

    您可以轻松地使用生成类。参见示例。

    您可以使用编译时间T4文本模板。在那里你可以添加你所有的属性,然后代码就会成倍增加,你甚至可以随意修改它。如果这些类需要单独的代码,只需将这些类设置为部分类,并将单独的代码添加到手动文件中即可


    但是:您很难获得T4的任何IDE功能。至少有一些扩展可以为您提供一些语法突出显示,但基本上就是这样。

    “所以我需要继承而不派生类,这是有意义的。”没有解释为什么。如果不使用T4模板,就没有办法了。C#没有等效代码。虽然使用Rosalyn编译器,您可以编写一个编译器插件来查找该指令并替换该文件的内容,您可以使用预编译和后编译事件命令行来运行您的程序(它将充当预处理器)它在生成前将属性添加到文件中,在生成后将属性删除。是的,您可以尝试将此方法与razor/t4代码模板相结合来生成所需的类。@JonBarker如果使用.NET 4.6和Rosalyn编译器,他可以编写一个编译器插件来复制该功能