我有一个使用 NHibernate.dll 的项目。我们将项目迁移到使用 .Net Framework 4.0。我们使用 FxCop 和 FxCop 启动失败并出现错误
无法解析程序集 Nhibernate.dll 所以我的猜测是如果我可以将 NHibernate.dll 移动到 .Net Framework 4.0 就可以了。
我试过了,它给出了大约 100 个错误,关于我使用的是哪个 ISet 是 System.** 还是 Ies.Collections.Generic。我使用了 Ies.Collection.Generic 因为 Nhibernate 引用了它。
我成功地将其迁移到 .Net 4。但是当我访问我的 Web 应用程序时,我收到了以下消息。
Inheritance security rules violated while overriding member: 'NHibernate.Cfg.Configuration.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'. Security accessibility of the overriding method must match the security accessibility of the method being overriden.
虽然我根本没有压倒任何东西。我在互联网上搜索并找到了几篇文章,但我不想更改 NHibernate 代码,因为那不是我的代码。
为什么我不使用最新的 NHibernate? 因为当我使用它时,我的项目坏了,错误是没有使用 3 个参数(我的项目使用)的重载方法
FilterDefinition(string name, string defaultCondition, IDictionary<string, IType> parameterTypes, bool useManyToOne);
现在他们有第四个参数,我不确定结果会是什么。
问题:
有人可以帮我解决这个错误吗?
有人成功将 NHibernate 迁移到 .Net 4 吗?
谢谢
参考:
http://forums.lhotka.net/forums/t/9914.aspx
覆盖成员时违反继承安全规则 - SecurityRuleSet.Level2 http://community.codesmithtools.com/Template_Frameworks/f/67/p/12331/47618.aspx#47618