我在获得上述异常时遇到问题。我有一个相对简单的结构,分为两个 dll。
第一个包含 IEntityService、IEntity 和基本实现。第二个包含实际的实现和接口。因此,有一个 IMachine 服务实现了 IEntityService,而 MachineService 又实现了 IEntityService 和 EntityService。结果集合(实体加服务)也会发生类似的情况。此外,服务(机器和结果)是部分类/接口,其中其中一个类是自动生成的。
现在,在其中一个 ResultMachine 中,我试图获取一台机器,如果它不存在,我将创建它并保存。但是,当我尝试保存时,尝试从 EntityService 类访问保存方法时收到“找不到方法”。但是,如果我将 EntityService.Save 方法包装在 MachineService 中,它就可以正常工作,没有任何异常。
Edited:
该代码不是必需的。解决方案是重新链接参考。我的 dll 不在 GAC 中,它与 VS 链接,这对我来说是误导。而且它没有强签名,唯一的区别是版本号。
我们已经多次遇到此错误,您可以按如下方式重新创建问题:
- 使用 2 个 dll 创建项目(例如一个程序 dll 和一个测试 dll)
- 将程序dll部署到GAC
- 添加新方法
- 创建测试来测试新方法
- 构建解决方案
- 运行测试(不在调试模式下)
您现在将得到方法丢失异常。原因是它使用的是GAC中旧版本的dll,并且没有该方法。
有时它使用旧 dll 的缓存版本,IISreset 可以提供帮助。
根据您的情况,检查 dll 的任何旧版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)