Hm *_* Ch 5 c# t4 texttemplate .net-core
当我尝试将参数发送到运行时文本模板 t4(网络核心)时,我在使用 .net Core 的“CallContext.LogicalGetData”方法中遇到问题
以下 tt 文件:
<#@ template language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ parameter name="firstName" type="System.String" #>
<#@ parameter name="lastName" type="System.String" #>
Run Code Online (Sandbox Code Playgroud)
和Cs调用方法:
var pt1 = new ParamTemplate1();
pt1.Session = new Dictionary<string, object>();
pt1.Session["firstName"] = "David";
pt1.Session["lastName"] = "Giard";
pt1.Initialize();
var outputText1 = pt1.TransformText();
Console.WriteLine(outputText1);
Hello <#=firstName #> <#=lastName #>!
Run Code Online (Sandbox Code Playgroud)
问题是由于 .net core 不支持“System.Runtime.Remoting”库
有什么想法或解决方法吗?
谢谢。
抱歉回复晚了,但是如果您仍然想使用 t4 模板,您可以将 t4 文档末尾的参数指令替换为属性:
<#+
public string FirstName { get; set; }
public string LastName { get; set; }
#>
Run Code Online (Sandbox Code Playgroud)
然后调用它:
var pt1 = new ParamTemplate1
{
FirstName = "David",
LastName = "Giard"
};
var outputText1 = pt1.TransformText();
Console.WriteLine(outputText1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
758 次 |
| 最近记录: |