2015-09-08 22 views
0

我想这在某种程度上接受class_name属性,并创建一个类,名称会是class_name如何用T4模板创建一个自定义的部分类?

理想的价值,我应该能够执行内部包含public partial class MyClass定义MyClass.cs我的模板,模板,这将设置class_nameMyClass

此模板

<#@ template debug="false" hostspecific="false" language="C#" #> 
<#@ assembly name="System.Core" #> 
<#@ import namespace="System.Linq" #> 
<#@ import namespace="System.Text" #> 
<#@ import namespace="System.Collections.Generic" #> 
<#@ output extension=".cs" #> 

public partial class <#=class_name #> 
{ 

} 

产生一个错误:

Error 1 Compiling transformation: The name 'class_name' does not exist in the current context 

如何将class_name的定义加入其中?

+0

你想从你的代码中执行此模板(MyClass.cs)或Visual Studio在您的项目.TT文件? – Frank

+0

我想执行它从视觉工作室 – user2136963

+1

有一个类似的帖子[这里](http://stackoverflow.com/questions/15946802/how-do-i-pass-a-string-parameter-to-a-t4 -template)已经是,这是你正在尝试做什么? – Frank

回答

0

可以定义为CLASS_NAME像这样:

<#@ template debug="false" hostspecific="false" language="C#" #> 
<#@ assembly name="System.Core" #> 
<#@ import namespace="System.Linq" #> 
<#@ import namespace="System.Text" #> 
<#@ import namespace="System.Collections.Generic" #> 
<#@ output extension=".cs" #> 
<# var class_name = "MyClass"; #> 

public partial class <#=class_name #> 
{ 

} 
+0

这不是真的传递一个参数,它只是在这个模板的上下文中设置一个局部变量 – Frank

相关问题