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中实现这一点的技术吗?
取决于你想做什么,PostSharp或任何其他AOP框架可能是一个干净的解决方案。
您应该仔细阅读多态性。要完成您正在尝试做的事情,最简单的方法是让您的类从具有您想要的属性的公共父类继承。只要记住,如果你从基类重写一个方法,你必须重新声明你的属性(尽管你可以使用[AttributeProvider]
来建议索引器或属性的属性)。
对你的问题的简短回答是"不"。你可以(只要足够努力),但根本不值得。最好直接继承这些属性。