gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 17:13:32 25 4
gpt4 key购买 nike

我有一个 *.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());

...不会编译。错误是,“‘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()
{

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

更新

事实证明,这是产生看似无用的错误消息的“我的缺点”之一。发生的事情是,我的一些命名空间是错误的——代码是从另一个元素中逐字复制的,并且命名空间没有更新。纠正这些问题后,元素编译正常。

最佳答案

原因

事实证明,这是产生看似无用的错误消息的“我的缺点”之一。

解决方案

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

关于c# - 如何让自动生成的文件识别它自己创建的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28909718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com