g.i.cs 文件中的类未更新

Posted

技术标签:

【中文标题】g.i.cs 文件中的类未更新【英文标题】:Class not updated in g.i.cs file 【发布时间】:2018-09-28 18:25:30 【问题描述】:

我有这门课

public class Questionnaire

    public List<Question> Questions  get; set; 

    public Question this[int i]
    
        get  return Questions[i]; 
    

我正在尝试在我的页面上使用它

Questionnaire questionnaire;

protected override async Task OnInitAsync()

    questionnaire.Questions = new List<Question>();

但我只是不断得到

“问卷”不包含“问题”的定义,并且找不到接受“问卷”类型的第一个参数的扩展方法“问题”(您是否缺少 using 指令或程序集引用?)

我注意到我可以似乎打电话

questionnaire.QuestionNumber = 1;

即使我很久以前就删除了 QuestionNumber 属性。

根据参考,我可以看到在 Questionnaire.g.i.cs 中有一个 QuestionNumber 属性,但没有 Questions 属性。

我尝试重新启动 VS,清理项目,重建项目,但没有任何结果。

【问题讨论】:

检查包含Questionnaire 代码的库的项目引用。我敢打赌它指向磁盘上的一个位置,而不是被添加为项目参考。 Questionnaire.g.i.cs 听起来像是自动生成的代码。你确定你的班级不应该是partial 班级吗?此外,如果应该将其删除,您可能还想了解生成 QuestionNumber 的内容。 自己添加这个属性,我想只是为了好玩) 这个类在哪里,在cshtml里面???? 这是 blazor 0.1 吗?还是 0.2? 【参考方案1】:

我怀疑您有一个也称为问卷 (Questionnaire.cshtml) 的页面。在 Blazor 应用中,每个 .cshtml 文件都用于在生成时生成一个与 .cshtml 文件同名的类。因此,您可能有两个问卷类:一个是您自己定义的,一个是从问卷文件生成的。重命名这两个类之一应该可以解决问题。

【讨论】:

以上是关于g.i.cs 文件中的类未更新的主要内容,如果未能解决你的问题,请参考以下文章

从 QwtPlotZoomer 派生的类未按预期工作

自定义 GUI 元素的类未显示

封装类未完

环境大小类未更新

Interface Builder - 自定义类未显示

基类未捕获 C++ 派生类异常