【发布时间】:2013-12-24 22:03:40
【问题描述】:
构建the sample code,并运行任何测试。 (我试过abs。)
每次我这样做,我都会收到TypeLoadException:
Jurassic.dll 中出现“System.TypeLoadException”类型的异常,但未在用户代码中处理
附加信息:类型违反了继承安全规则:“Jurassic.Compiler.WhiteSpaceToken”。派生类型必须与基类型的安全可访问性相匹配,或者难以访问。
问题是WhiteSpaceToken 是一个简单的类,Token 也是它的基类。所以看起来异常实际上并没有提供关于类名的准确信息,错误可能是由其他代码引起的。
在这种情况下,我的理解几乎是 0。我能想到的唯一解释是你不能从可移植库中继承抽象类,但我从未听说过这种限制。
任何想法为什么会发生这种情况?
附:根据评论中的要求添加一些关于代码结构的快速信息
- Token 类是面向 .NET 4、Silverlight 5、Windows 8 和 Windows Phone 8 的可移植库中的公共抽象类。它仅适用于来自
mscorlib的字符串类。 -
WhiteSpaceToken位于普通程序集中,面向 .NET 4。它继承自Token。也仅适用于int和string。 - 这两个类的代码中都没有任何属性。
- 单元测试程序集是 MSTest 目标 4.0 上的普通单元测试程序集
【问题讨论】:
-
怀疑人们会下载、构建和运行您通过 url 提供的东西。这个网站运行了小而完整的问题示例。也许改写您的问题将有助于获得答案。
-
我更多的是寻找洞察力,而不是寻找真正去调试的人,并找出可能是什么原因。但是感谢您的建议,我将添加一些快速信息
标签: c# .net-4.0 cas code-access-security