【问题标题】:'Class' does not contain a definition for 'Method'“类”不包含“方法”的定义
【发布时间】:2012-09-10 14:33:52
【问题描述】:

Employee 课堂上,我有一些方法,效果很好。现在我想添加新方法,例如

public void ExampleMethod()
{         
}

那我就叫它

Employee employee = new Employee();
employee.ExampleMethod();

ExampleMethod 出现在点后显示的 IntelliSense 中,当我按下 F12 时,它也会将我重定向到该方法,但是在启动项目时出现错误:'Employee' does not contain a definition for 'ExampleMethod' and no extension可以找到接受“Employee”类型的第一个参数的方法“ExampleMethod”(您是否缺少 using 指令或程序集引用?)

我不知道为什么会导致此错误,因为所有其他早期方法都可以正常工作。有什么问题?

【问题讨论】:

  • 您可以发布您的完整员工课程吗?清理 + 重建一切可能会有所帮助
  • 尝试在 GAC 中手动更新您的程序集
  • 清理和重建工作!非常感谢:D

标签: c# asp.net methods


【解决方案1】:

有三种可能:

1) 如果您指的是旧的 DLL,那么它不能被使用。所以你有参考新的DLL

2) 如果您在不同的命名空间中使用它并尝试使用其他命名空间的 dll,那么它不会引用此方法。

3) 你可能需要重建项目

我认为第三个选项可能是你的原因。请发布更多信息以了解您的确切问题。

【讨论】:

  • 4) OP 可能对某种类歧义感到困惑,并从不同的组件/项目中引用了不正确的 Employee 类? +1。
  • +1 -> 不要将实体框架数据库表命名为与类相同的名称...Doh。
  • 我只需要清理和重建
  • 我必须清理并重建解决方案,而不仅仅是项目。
【解决方案2】:

使用命名空间名称创建类可能会解决您的问题

namespace.Employee employee = new namespace.Employee(); 
employee.ExampleMethod();

【讨论】:

  • 我在每个类调用之前手动添加了命名空间。这对我有用。
【解决方案3】:

我遇到了同样的问题。原来我引用的项目没有得到构建。 当我去 Visual Studio 中的构建配置管理器并启用参考项目时,问题得到了解决。

【讨论】:

    【解决方案4】:

    如果您正在使用来自另一个项目的类,则该项目需要重新构建并重新创建 dll。确保为该项目选中“构建” 构建 -> 配置管理器Visual Studio 中。因此参考项目将重新构建和更新 dll。

    【讨论】:

      【解决方案5】:

      我遇到了同样的问题。我在属性文件夹中更改了 AssemblyInfo.cs 中的程序集版本。但是,我不知道为什么会出现这个问题。可能编译器不明白这个dll比较新,只是换了Assembly的版本而已。

      【讨论】:

        【解决方案6】:

        我刚刚遇到了这个问题;这个问题似乎与此处发布的其他答案不同,所以我会提到它以防它对某人有所帮助。

        在我的例子中,我在一个程序集(“A”)中定义了一个内部基类,在第二个程序集(“B”)中定义了一个内部派生类,以及一个测试程序集(“TEST”)。我使用InternalsVisibleToAttribute 将程序集“B”中定义的内部组件暴露给“TEST”,但忽略了对程序集“A”这样做。这产生了上面提到的错误,没有进一步说明问题;使用InternalsVisibleToAttribute 将程序集“A”公开给“TEST”解决了这个问题。

        【讨论】:

          【解决方案7】:

          今天我遇到了与您描述的完全相同的症状的问题。我关闭了所有文件并重新启动 VS,却发现解决方案资源管理器中的一些文件消失了

          以下解决了我的问题:通过在解决方案资源管理器中选择当前项目,顶部栏会出现一个小图标Show all files。右键单击该文件并选择 Include In Project 即可。

          Credit

          【讨论】:

            【解决方案8】:

            在使用多个共享代码的项目的解决方案中工作时,我遇到了同样的问题。 原来我忘了更新第二个项目文件夹中的DLL。

            我的建议是仔细查看错误列表窗口中的“项目”列,并确保该项目也使用正确的 DLL。

            【讨论】:

            • 感谢项目专栏的建议。在 ASP.NET 中,Global.asax 与您的其他代码在不同的项目中被考虑,似乎?所以你不能从 Global.asax 调用内部/朋友方法。很烦人。
            【解决方案9】:

            我遇到了同样的问题,“重建解决方案”和“清洁解决方案”都不起作用。我通过检查我的 DLL 引用解决了这个问题。

            【讨论】:

              【解决方案10】:

              当我遇到同样的错误时,

              dotnet restore
              

              解决了。来自docs

              dotnet restore - 恢复项目的依赖和工具。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2015-07-27
                • 1970-01-01
                • 1970-01-01
                • 2017-02-02
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多