についてNET T T 4テンプレート使用簡単説明>>第1部
7106 ワード
本書のすべての内容は非公式解釈注釈であり、内容の多くは個人の理解であり、個人の参考に供する.
T 4テンプレートの概要
紹介はさせていただきます
T 4テンプレートは注入式コード言語に類似する、C#に基づいて識別され、現在に類似する.ttテンプレートは、あるタイプに継承され、保存時にIDEによって現在のコードが実行され、出力内容が生成される
など5種類のコードタグ
テーマに直行
使用主義に基づいて、他の内容を省略し、テンプレートの内容から簡単に紹介する.
testという名前を作成します.ttのT 4テンプレート
現在のTTテンプレートの保存エラーメッセージ
エラーをクリックしてエラー位置を表示
このような状況に基づいて、現在のテンプレートにArgumentNotNullメソッドを拡張すると、対応するドキュメントを保存して生成することができます.
生成されたtest.cs,ファイル
まとめ
以上のように、現在のtest.tt疑似継承EF 6.Utility.CS.ttincludeまたはそれ自体がその一部であり、EF 6のT 4テンプレートを使用する場合、現在のページでArgumentNotNullメソッドを実装する必要があります.なぜ静的なのかは、タイプ呼び出しと関係があるはずです.ここでは、他の探究はしていません.今後、検討する機会があることを望んでいます.
T 4テンプレートの概要
紹介はさせていただきます
T 4テンプレートは注入式コード言語に類似する、C#に基づいて識別され、現在に類似する.ttテンプレートは、あるタイプに継承され、保存時にIDEによって現在のコードが実行され、出力内容が生成される
// (=)
テーマに直行
使用主義に基づいて、他の内容を省略し、テンプレートの内容から簡単に紹介する.
testという名前を作成します.ttのT 4テンプレート
<#@ template language="C#" debug="false" hostspecific="true"#>
<#@ include file="EF6.Utility.CS.ttinclude"#>
<#@ output extension=".cs"#>
//
<#="Hello T4" #>
現在のTTテンプレートの保存エラーメッセージ
: “ArgumentNotNull”
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\Extensions\
Microsoft\Entity Framework Tools\Templates\Includes\EF6.Utility.CS.ttinclude 1497
エラーをクリックしてエラー位置を表示
public class EdmMetadataLoader
{
private readonly IDynamicHost _host;
private readonly System.Collections.IList _errors;
public EdmMetadataLoader(IDynamicHost host, System.Collections.IList errors)
{
/*
“ArgumentNotNull”
*/
ArgumentNotNull(host, "host");
ArgumentNotNull(errors, "errors");
_host = host;
_errors = errors;
}
......
}
このような状況に基づいて、現在のテンプレートにArgumentNotNullメソッドを拡張すると、対応するドキュメントを保存して生成することができます.
<#@ template language="C#" debug="false" hostspecific="true"#>
<#@ include file="EF6.Utility.CS.ttinclude"#>
<#@ output extension=".cs"#>
//
<#="Hello T4" #>
<#+
public static void ArgumentNotNull<T>(T arg, string name) where T : class
{
if (arg == null)
{
throw new ArgumentNullException(name);
}
}
#>
生成されたtest.cs,ファイル
Hello T4
まとめ
以上のように、現在のtest.tt疑似継承EF 6.Utility.CS.ttincludeまたはそれ自体がその一部であり、EF 6のT 4テンプレートを使用する場合、現在のページでArgumentNotNullメソッドを実装する必要があります.なぜ静的なのかは、タイプ呼び出しと関係があるはずです.ここでは、他の探究はしていません.今後、検討する機会があることを望んでいます.