Tag: typeloadexception

System.TypeLoadException:方法’get_xxx’没有实现

关于这个问题,有很多问题浮出水面,我已经完成了他们的工作,没有任何乐趣。 我收到此错误: 程序集’App.Web,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null’类型’App.Web.WebConfig’中的方法’get_UserImageCDNUrl’没有实现。 这真的很奇怪,因为我试图运行没有引用App.Web的Api.Web,它们唯一的共同点是对其他项目的引用(Models.Domain和Models.DTO)。 我有一个界面: IResourceCompiler在程序集“Models.Domain”中 我有一个抽象类,它在名为WebConfigBase的同一个程序集(Models.Domain)中实现此接口 在“App.Web”和“Api.Web”项目中,它们每个都有一个名为WebConfig的类,它inheritance自WebConfigBase ,因此App和Api中的WebConfig类都是IResourceCompiler的实现。 我试图添加一个属性 string UserImageCDNUrl {get;} 到IResourceCompiler并将属性添加到WebConfigBase public string UserImageCDNUrl { get { return “”; } } 因此,通过自己的WebConfig类,Api和Web项目都可以访问该属性,并且我得到了上述例外。 我已经花了好几个小时试着看看为什么会发生这种情况并没有快乐。 我已经清除了我的Obj文件夹,清理,重建,检查了GAC中的任何实例(没有任何实例),我仍然坚持这一点。 一切正常,直到我尝试向接口(和基类)添加新属性

TypeLoadException的解决方案

我只是想分享一些我学到的东西。 这里有很多关于TypeLoadExceptions的post,但是它们似乎都没有我需要的答案。 这个页面有一些特别好的信息,但似乎没有具体解决我所看到的以及我如何解决它(可能是错误的): TypeLoadException表示“没有实现”,但它已实现 解决方案对我来说很简单:删除Visual Studio 2010缓存的任何文件并用于生成程序集文件。 问题背景: 这里有一些更多的细节。 我看到一个TypeLoadException,如: 未处理的exception:System.TypeLoadException:类型[类型名称]中的方法[方法名称]来自程序集[程序集名称],Version = xxxx,Culture = neutral,PublicKeyToken = null没有实现。 我确实有一个实现……我想,直到我用ILDASM查看程序集。 我发现我正在将旧版本的DLL写入我的ouput文件夹,该文件夹已经过时了。 我的输出文件夹不是默认设置,而是项目文件夹之外的相对路径(也许VS无法完全处理这个问题)。 在对项目执行清理/重建之后,项目的“obj”文件夹是我的项目文件夹的所有子文件夹中唯一具有DLL上正确日期戳的文件夹。 由于某种原因,“bin”文件夹仍然有旧版本。 而且我想这就是被复制到输出文件夹的内容。 在此之前我尝试过: 清洁/重建 重启Visual Studio(2010) 重启 删除输出文件夹中的汇编DLL(bin \ x86 \ debug) ……没有成功 我不确定为什么VS没有将“obj”中的正确程序集复制到输出文件夹…引用过时程序集的项目是正确的 。

TypeLoadException表示“没有实现”,但它已实现

我的测试机器上有一个非常奇怪的错误。 错误是: System.TypeLoadException: Method ‘SetShort’ in type ‘DummyItem’ from assembly ‘ActiveViewers (…)’ does not have an implementation. 我只是无法理解为什么。 SetShort存在于DummyItem类中,我甚至重新编译了一个带有对事件日志的写入的版本,只是为了确保它不是部署/版本控制问题。 奇怪的是调用代码甚至不调用SetShort方法。

我该如何排除故障:System.TypeLoadException?

你能给我一个解决System.TypeLoadException问题的方法吗? 我对我的解决方案中的现有项目有exception,我在同一解决方案中从unit testing项目中引用。 当我运行unit testing时抛出此exception。 他们因为这个例外而失败: 细节: 测试方法MyErrorHandler.Test.MyTest.Parse_RecievesValidMessage_ReturnsArray引发exception:System.TypeLoadException:无法从程序集’MyTestAssemblyName.Test,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = Somenumber加载类型’MyTestNameSpace’。 我应该检查什么或在哪里开始调查?

ReflectionTypeLoadException:Type正在尝试实现无法访问的接口

我正在使用Assembly.GetTypes()获取插件库中定义的所有类型(因此我可以实例化插件实例)。 在特定的库中,该方法引发ReflectionTypeLoadException,说: Type is attempting to implement an inaccessible interface 谷歌搜索它似乎是因为特定的类型实现了非公共接口。 实际上它是,但Type嵌套在另一个公共类中,声明为private。 如何避免这种exception? …. 制作界面公共代码工作。 是否有可能定义这个奇怪的行为是一个bug(在Assembly.GetTypes()中)? 这意味着库类型无法实现受保护的交互面!