T4 خطأ على مقابل.تجميع التحول:'كتابة' غير عضو

StackOverflow https://stackoverflow.com/questions/212326

  •  03-07-2019
  •  | 
  •  

سؤال

أحاول استخدام فئة داخل قالب T4 في VS2008.

هنا هو نسخة مبسطة من ما أقوم به...

<#@ 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:\Development\PrivateProjects\CodeGeneration\CodeGeneration\Generation\Common est2.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 
#>

مما يؤدي في الكتابة يتم تمريرها إلى فئة الأصل للمعالجة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top