2016-09-29 6 views
-3

CompileTimeでのコード置換に関するT4テンプレートやVisual Studioプラグインに慣れていません。コードが常に同じとredudantですので、私はこのようなコード簡素化したいVisual Studioはコンパイル時にC#コードを置き換えます

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

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

:Visual Studioで技術を知っ

@myTemplate 
public partial class Form1 : Form 
{ 

    @myTemplate 
    public Form1() 
    { 
     InitializeComponent(); 
    } 
} 

誰もが

私は、次のコードを持っていますこれを達成するには?前もって感謝します。

+3

https://www.postsharp.net/ –

+3

「コードは常に同じで還元しやすい」[sic]であれば、そのパターンで複数のクラスがあることを意味します。それらのパターンは、 'Form1'から継承させることができます – Hintham

答えて

0

polymorphismにお読みください。あなたがしようとしていることを達成する最も簡単な方法は、クラスが必要な属性を持つ共通の親から継承するようにすることです。基本クラスのメソッドをオーバーライドする場合は、属性を再宣言する必要があります(ただし、インデクサーまたはプロパティの属性を示すには[AttributeProvider]を使用できます)。

あなたの質問に対する短い答えは「いいえ」です。あなたは(十分な努力で)することができますが、単に価値がありません。単に属性を継承する方がよいでしょう。

2

あなたがやりたいことに応じて、PostSharpまたは他のAOPフレームワークは、きれいな解決策になる可能性があります。

関連する問題