如何让自动生成的文件识别它自己创建的方法?

How can I get an auto-generated file to recognize a method it created itself?

我有一个 *.tt 文件(实际上是两个,但它们的作用相似,所以我只说一个)。

我像另一个项目一样设置它们,它们工作正常。它们的属性设置相同,如:

CustomTool = TetxtTemplatingFilePreprocessor

当我select"Run Custom Tool"时,会创建一个对应的*.cs文件:

// ------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version: 10.0.0.0
//  
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
// ------------------------------------------------------------------------------

但是项目不会编译,因为这个代码在自动生成的文件 (FormTemplate.cs):

FormTemplate formTemplate = new FormTemplate(POST, this);
output.Write(formTemplate.TransformText());

...无法编译。错误是,“'QuizModule.QuizModuleWebPart.Templates.FormTemplate' 不包含 'TransformText' 的定义,并且找不到接受类型 'QuizModule.QuizModuleWebPart.Templates.FormTemplate' 的第一个参数的扩展方法 'TransformText'”

它如何生成代码,然后找不到它引用的方法?实际上,它 确实 生成了方法,它就在 FormTemplate.cs:

#line 1   
"C:\Projects\QuizModule_Test\QuizModule_Test\QuizModuleWebPart\Templates\FormTem
plate.tt"   

[System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "10.0.0.0")]
    public partial class FormTemplate : FormTemplateBase
    {
        {
        public virtual string TransformText()
            {

为什么会看不到自己的方法?

更新

这原来是那些 "my bads" 中产生的 [s] 错误信息之一。发生的事情是,我的一些命名空间是错误的——代码是从另一个项目中逐字复制的,并且命名空间没有更新。纠正这些问题后,项目编译正常。

原因

这原来是那些 "my bads" 中产生的 [s] 错误信息之一。

解决方案

发生的事情是,我的一些命名空间是错误的 - 代码是从另一个项目逐字复制的,并且命名空间没有更新。纠正这些问题后,项目编译正常。