Gtk3 앱 Rider와 T4 템플릿으로 HelloWorld
T4 템플릿이란?
웹 언어에 있는 HTML 템플릿 엔진과 같은 것.
변수나 배열을 포함하고, For문으로 돌려 HTML을 출력하거나,
텍스트나 CS 클래스 파일을 출력할 수 있다
클래스 템플릿을 C#과 텍스트로 만들고 CS 소스로 Dll로 내보낼 수 있습니다.
tt 파일 추가
Rider 탐색기에서 오른쪽 클릭에서 추가에서 T4 파일 선택
tt 파일 열기
HelloWorld를 기입합니다.
test.tt
<#@ template language="C#" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
HelloWorld
Nuget에서 System.CodeDom 설치
System.CodeDom을 설치합니다.
설치하지 않으면 컴파일시 'System.CodeDom.Compiler'에서 찾을 수 없으면 오류가 발생합니다.
型名 'CompilerErrorCollection' は名前空間 'System.CodeDom.Compiler' に見つかりませんでした。
この型はアセンブリ 'System.CodeDom, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
に転送されました。このアセンブリへの参照を追加することを検討してください。
tt 파일 실행
Preprocess Template에서 실행
실행
CS 종속 파일이 생성됩니다.
텍스트를 출력하는 코드 작성
적절한 곳에 클래스를 선언하고 TransformText()를 호출하면 템플릿 내용이 출력됩니다.
System.CodeDom이 Nuget에서 설치하지 않으면 TransformText에서 오류가 발생합니다.
test test = new test();
var a = test.TransformText();
Console.WriteLine(a);
변수에 값을 넣습니다. 생성자 변수를 넣고 tt에서 표시
종속 클래스는 partial 클래스이므로 나중에 클래스의 내용을 추가할 수 있습니다.
생성자와 Setter를 추가합니다.
namespace T4SapmleGtkApp
{
partial class test
{
public string TestText1;
private string TestText2;
public test(string data)
{
this.TestText2 = data;
}
}
class MainWindow : Window
{
public MainWindow() : this(new Builder("MainWindow.glade"))
{
test test = new test("2222");
test.TestText1 = "1111";
var a = test.TransformText();
Console.WriteLine(a);
}
}
TT파일중에서는 <#= #>로 C#의 영역으로 해 표시합니다.
test.tt
<#= TestText1 #>
<#= TestText2 #>
For문 사용법
<##>내가 C#의 영역
<#= val #>내가 C#의 변수 1개까지 표시한다
그렇지 않으면 텍스트 표시
<# var val = "test"; #>
<# for (int i = 1; i <= 10; i++){ #>
test <#= val #> <#= i #>
<# } #>
참고 자료
Gtk3 앱 TextView TreeView에 스크롤 막대 표시 다음에
Reference
이 문제에 관하여(Gtk3 앱 Rider와 T4 템플릿으로 HelloWorld), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/iota_11/items/b877aa430801968eba31텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)