Visual Studio在编译时替换c#代码

本文关键字:替换 代码 编译 Studio Visual | 更新日期: 2023-09-27 18:09:18

我不熟悉T4模板或任何Visual Studio插件在CompileTime的代码替换。

我有以下代码:

[Localizable(true)]
[AmbientValue(true)]
[Description("customized")]
public partial class Form1 : Form
{
    [Localizable(true)]
    [AmbientValue(true)]
    [Description("customized")]
    public Form1()
    {
        InitializeComponent();
    }
}

因为代码总是相同且冗余的,所以我想这样简化代码:

@myTemplate
public partial class Form1 : Form
{
    @myTemplate
    public Form1()
    {
        InitializeComponent();
    }
}

有人知道Visual Studio中实现这一点的技术吗?

Visual Studio在编译时替换c#代码

取决于你想做什么,PostSharp或任何其他AOP框架可能是一个干净的解决方案。

您应该仔细阅读多态性。要完成您正在尝试做的事情,最简单的方法是让您的类从具有您想要的属性的公共父类继承。只要记住,如果你从基类重写一个方法,你必须重新声明你的属性(尽管你可以使用[AttributeProvider]来建议索引器或属性的属性)。

对你的问题的简短回答是"不"。你可以(只要足够努力),但根本不值得。最好直接继承这些属性。