VS上的T4错误。编译转换:'写'不是成员
我想在VS2008的T4模板中使用一个类。VS上的T4错误。编译转换:'写'不是成员
下面是我在做什么的简化版本...
<#@ template language="VB" debug="True" hostspecific="True" #> <#@ output extension=".vb" debug="True" hostspecific="True" #>
<#@ assembly name="System.Data" #>
<#@ assembly name="System.Windows.Forms.dll" #>
<#@ assembly name="System.xml" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="System.Data.SQLClient" #>
<# Call (New SomeClass).Start()#>
<#+
Private Class SomeClass
Public Sub Start()
#>test<#+
End Sub
End Class
#>
当我运行这个模板......我得到以下错误...
错误1编译转换:'写'不是 'Microsoft.VisualStudio.TextTemplatingF77BDE667ECAD297F587D3D651053846的成员。 GeneratedTextTransformation.SomeClass'。 d:\开发\ PrivateProjects \ CodeGeneration \ CodeGeneration \代\ COMMON \ test2.tt 16 1 CodeGeneration
谁能告诉我,为什么这会导致它的错误,更重要的是如何否定它的作用?
回答:
代码...
#>test<#+
...在内部转换为...
Write("test");
因为我班上没有一个 '写' 的方法,编译失败。
的解决方法是....
<#@ template language="VB" debug="True" hostspecific="True" #> <#@ output extension=".vb" debug="True" hostspecific="True" #>
<#@ assembly name="System.Data" #>
<#@ assembly name="System.Windows.Forms.dll" #>
<#@ assembly name="System.xml" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="System.Data.SQLClient" #>
<#@ import namespace="Microsoft.VisualStudio.TextTemplating" #>
<# Call (New SomeClass(Me)).Start()#>
<#+
Private Class SomeClass
Private mOutput as TextTransformation
Public Sub New(Output as TextTransformation)
mOutput = Output
End Sub
Public Sub Write(SomeText as String)
mOutput.Write(SomeText)
End Sub
Public Sub Start()
#>test<#+
End Sub
End Class
#>
导致写入被传递给处理父类。
以上是 VS上的T4错误。编译转换:'写'不是成员 的全部内容, 来源链接: utcz.com/qa/261702.html