무엇을하려고합니까
T4를 사용하여 메일 메시지 템플릿을 만들려고합니다.T4 전처리 된 템플릿 사용자 정의
내가 제대로 understoo 경우, 나는 Microsoft.VisualStudio.TextTemplating
어셈블리 종속성을 도입하지 않고 런타임에 메시지를 생성하려는 경우 내가해야 할 일이다하는 전처리 템플릿을 사용하고 있습니다. 내 템플릿에 일부 데이터를 전달하려는 때문에
, 나는 그것을 매개 변수를 추가 :
<#@ template language="C#" #>
<#@ parameter name="Param1" type="System.String" #>
<#@ parameter name="Param2" type="System.
Lorem <#= Param1 #> dolor <#= Param2 #>
그런 다음 나는이 같은 인수를 전달 메시지를 생성 할 수 있습니다
static void Main(string[] args) {
var template = new LoremIpsum();
template.Session = new Dictionary<string, object>() {
{"Param1", "ipsum"},
{"Param2", "sit amet"},
};
template.Initialize();
string text = template.TransformText();
}
문제 란
이러한 클래스를 여러 개 생성해야하므로 다음과 같이 메일을 보내는 일반적인 방법이 필요합니다.
더 나은 6,public void SendMail(string to, IDictionary<string, object> parameters)
또는 :
public void SendMail(string to, string Param1, string Param2)
생성 된 클래스는 부분이기 때문에, 그들을 다른 부분 클래스 선언을 추가하는 방법을 추가 할 수 있습니다,하지만 내가 반복해야한다는 것을 의미한다 생성 된 모든 클래스에 대해 (다소간) 동일한 코드를 사용합니다.
지금까지 내가 기본 클래스를 만드는 시도을 시도 무엇
,하지만 난이 일을하려고하는 경우 : 다음 <#@ template language="C#" inherits="MailTemplateBase" #>
<#@ template language="C#" inherits="MailTemplateBase" #>
생성 된 코드 나누기
, 생성 된 클래스는LoremIpsumBase
에 의존 한대로 일부 도우미 메서드를 정의한 기본 클래스 (그리고 실제로 생성 된 각 클래스를 거의 동일하지만 별개의 기본 클래스에서 상속 받는다는 의미는 없습니다).
질문
어떻게 내 템플릿에 대한 기본 클래스를 가질 수 있습니다-
?
- 템플릿에서 선언 된 매개 변수와 동일한 매개 변수를 허용하는 메서드를 어떻게 만들 수 있습니까?
질문을 많이 편집했지만 생성 된 기본 클래스를 복사하여이를 기본 클래스로 사용하는 것이 최선의 방법이라고 생각합니다. 하지만이 문제가 다음 VS 버전이나 업데이트와 충돌 할 수도 있습니다. –
그래, RTM과 SP1간에 문제가 있다는 것을 이해할 수 있습니다. –
앞으로 이동하는 방법에 대한 권장 사항은 내 업데이트를 참조하십시오. –