私は次のことをしています:
- XML でワークフローを定義します。
- LINQ を使用してワークフローをオブジェクトに変換します。
- 実行時に、#2 に基づいて T4 ベースの C# ファイルを作成します。
- コンパイルとインスタンス化 #3.
注:これはすべてクライアント コンピューターで実行する必要があるため、Visual Studio に依存することはできません。
#1 と #2 はわかりましたが、#3 の一部だけです。XML => object ステップの結果を tt ファイルに渡す方法がわかりません。
私のttファイル:
<#@ template language="C#" debug="true" hostSpecific="false" #>
<#@ output extension=".cs" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Diagnostics" #>
<#@ import namespace="System.Collections" #>
<#@ import namespace="System.Collections.Generic" #>
<#
#>
using System;
namespace RWT.Direct.Core.Public.Servers
{
public partial class ServerClass
{
public void CanYouSeeMe()
{
Console.WriteLine("this should be from a property");
}
}
}
部分クラス (通常の .cs):
namespace RWT.Direct.Core.Public.Servers
{
public partial class ServerClass : ServerTemplate
{
public string MyParameter;
}
}
呼び出しコード:
ServerClass sc = new ServerClass();
sc.MyParameter = "abc"; // set property
String pageContent = sc.TransformText();
Console.WriteLine(pageContent); // compile step goes here
実装では、プロパティは List 型になります。
これを正しく行うにはどうすればよいですか?