2016-09-29 5 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 프레임 워크가 깨끗한 해결책이 될 수 있습니다.