2016-09-29 2 views
-3

Я не знаком с шаблонами T4 или любыми плагинами Visual Studio относительно замены кода в CompileTime.Visual Studio заменяет код C# при компиляции

У меня есть следующий код:

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

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

Поскольку код всегда одинаков и redudant я хочу, чтобы упростить код так:

@myTemplate 
public partial class Form1 : Form 
{ 

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

Кто-нибудь известно о технике в Visual Studio для достижения этой цели? Заранее спасибо.

+3

https://www.postsharp.net/ –

+3

Если «код всегда один и тот же и redudant» [sic], вы имеете в виду, что у вас есть несколько классов с таким шаблоном, который вы можете позволить им наследовать от 'Form1' – Hintham

ответ

0

Вы должны прочитать на polymorphism. Самый простой способ выполнить то, что вы пытаетесь сделать, - позволить вашим классам наследовать от общего родителя, у которого есть нужные вам атрибуты. Просто помните, что если вы переопределите метод из вашего базового класса, вам нужно повторно объявить свои атрибуты (хотя вы можете использовать [AttributeProvider], чтобы предлагать атрибуты индексатора или свойства).

Короткий ответ на ваш вопрос - «нет». Вы можете (с достаточным усилием), но это просто не стоит. Лучше просто наследовать атрибуты.

2

В зависимости от того, что вы хотите сделать, PostSharp или любая другая AOP Framework может быть чистым решением.

Смежные вопросы