我正在执行以下操作:
- 在 XML 中定义工作流。
- 使用 LINQ 将工作流转换为对象。
- 在运行时,基于#2 创建一个基于 T4 的 C# 文件。
- 编译和实例化#3。
注意:所有这些都必须发生在客户端计算机上,因此不能依赖于 Visual Studio。
我已经弄清楚了#1 和#2,但只是#3 的一部分。我不知道如何将 XML => 对象步骤的结果传递给 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 类型。
我该如何正确地做到这一点?