19

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

public void ExampleMethod()
{         
}

然后我叫它

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

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

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

4

10 回答 10

26

有三种可能:

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

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

3)您可能需要重建项目

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

于 2012-09-18T10:31:25.693 回答
6

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

namespace.Employee employee = new namespace.Employee(); 
employee.ExampleMethod();
于 2012-09-18T10:31:58.533 回答
3

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

于 2014-01-21T12:47:07.093 回答
2

如果您正在使用来自另一个项目的类,则该项目需要重新构建并重新创建 dll。确保在Visual Studio的Build -> Configuration Manager上检查了该项目的“构建” 。因此参考项目将重新构建和更新 dll。

于 2016-08-25T10:09:47.937 回答
1

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

于 2015-05-04T16:48:19.077 回答
1

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

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

于 2016-07-15T18:13:19.027 回答
0

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

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

于 2014-02-27T10:08:25.003 回答
0

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

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

信用

于 2016-05-07T20:41:17.563 回答
0

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

于 2019-09-25T08:54:07.443 回答
0

当我遇到同样的错误时,

dotnet restore

解决了。从文档

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

于 2021-03-16T10:39:46.500 回答