LOS*_*OST 0 c# cas .net-4.0 code-access-security
构建示例代码并运行任何测试。(我试过abs。)
每次我这样做,我都会得到TypeLoadException:
Jurassic.dll 中发生“System.TypeLoadException”类型的异常,但未在用户代码中处理
附加信息:类型违反了继承安全规则:“Jurassic.Compiler.WhiteSpaceToken”。派生类型必须与基类型的安全可访问性相匹配,或者难以访问。
问题是WhiteSpaceToken一个简单的类,它的基础也是如此Token。所以看起来异常实际上并没有提供有关类名的准确信息,并且该错误可能是由其他一些代码引起的。
在这种情况下我的理解几乎为0。我能想到的唯一解释是你不能从可移植库继承抽象类,但我从未听说过这种限制。
有什么想法为什么会发生这种情况吗?
PS 按照评论中的要求添加一些有关代码结构的快速信息
mscorlib.WhiteSpaceToken位于普通程序集中,面向 .NET 4。它继承自Token. 也仅适用于int和string。我找到了问题的根源:它是System.Security.AllowPartiallyTrustedCallers在非便携式程序集上设置的,其中包含WhiteSpaceToken. 我删除它后,问题就消失了。看起来可移植代码具有透明模型,这导致WhiteSpaceToken在安全性方面比 更宽松,Token这反过来又导致了异常消息中描述的问题。
希望这些信息更加具体。
| 归档时间: |
|
| 查看次数: |
10505 次 |
| 最近记录: |