'Class'不包含'Method'的定义

时间:2012-09-18 10:28:23

标签: c# asp.net methods

在课程Employee中,我有一些方法可以正常使用。现在我想添加新方法,例如

public void ExampleMethod()
{         
}

然后我称之为

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

在dot之后显示的IntelliSense中存在ExampleMethod,当我点击F12时它也会将我重定向到该方法,但是在启动项目时我遇到了一个错误:'Employee'不包含'ExampleMethod'的定义而且没有扩展名可以找到方法'ExampleMethod'接受类型为'Employee'的第一个参数(你是否缺少using指令或汇编引用?)

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

10 个答案:

答案 0 :(得分:21)

有三种可能性:

1)如果您指的是旧DLL,则无法使用它。所以你已经引用了新的DLL

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

3)您可能需要重建项目

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

答案 1 :(得分:6)

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

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

答案 2 :(得分:2)

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

答案 3 :(得分:1)

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

在我的例子中,我有一个在一个程序集中定义的内部基类(" A"),一个在第二个程序集中定义的内部派生类(" B"),以及测试组件(" TEST")。我暴露了组装中定义的内部结构" B"到" TEST"使用InternalsVisibleToAttribute,但忽略了这样做以进行装配" A"。这产生了顶部提到的错误,没有进一步指出问题;使用InternalsVisibleToAttribute公开程序集" A"到" TEST"解决了这个问题。

答案 4 :(得分:1)

如果您正在使用其他项目中的类,则项目需要重新构建并创建重新创建的dll。确保" Build"检查该项目 构建 - > Visual Studio 中的Configuration Manager 。因此参考项目将重新构建并更新dll。

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

我遇到了同样的问题。我在属性文件夹中更改了AssemblyInfo.cs中的程序集版本。但是,我不知道为什么会出现这个问题。也许编译器不理解这个dll更新,只是改变了Assembly的版本。

答案 7 :(得分:0)

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

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

Credit

答案 8 :(得分:0)

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

答案 9 :(得分:0)

当我遇到同样的错误时,

dotnet restore

解决了。来自docs

<块引用>

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