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

时间:2015-03-07 00:02:44

标签: c# visual-studio-2010 sharepoint-2010 css

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

我把它们设置得像另一个项目,它们工作得很好。它们的属性设置相同,例如:

CustomTool = TetxtTemplatingFilePreprocessor

当我选择"运行自定义工具"时,会创建相应的* .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());

...不会编译。错误是,&#34;&#39; QuizModule.QuizModuleWebPart.Templates.FormTemplate&#39;不包含&#39; TransformText&#39;的定义并没有扩展方法&#39; TransformText&#39;接受类型&#39; QuizModule.QuizModuleWebPart.Templates.FormTemplate&#39;的第一个参数。可以找到&#34;

如何生成代码,然后无法找到它引用的方法?实际上, 生成了该方法,它就在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()
            {

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

更新

结果证明这是其中一个&#34;我的坏人&#34;这看起来似乎是错误的信息。发生的事情是,我的一些命名空间是错误的 - 代码已经从另一个项目逐字复制,并且命名空间尚未更新。一旦这些问题得到纠正,该项目编制得很好。

1 个答案:

答案 0 :(得分:1)

原因

结果证明这是其中一个&#34;我的坏人&#34;这看起来似乎是错误的信息。

解决方案

发生的事情是,我的一些命名空间是错误的 - 代码已经从另一个项目逐字复制,并且命名空间尚未更新。一旦这些问题得到纠正,该项目编制得很好。