Fluent NHibernate和.NET 4存在奇怪的覆盖问题

Fluent NHibernate和.NET 4存在奇怪的覆盖问题,nhibernate,fluent-nhibernate,.net-4.0,Nhibernate,Fluent Nhibernate,.net 4.0,我最近考虑过将Fluent NHibernate与.NET 4结合使用,我解决了这个问题,但遇到了一个新问题 摘要 我目前的主要问题是配置数据库。我正在关注,但尝试使用SQL Server 2008 Express,因为这是我将要使用的,因此我需要学习 失败代码: public static ISessionFactory CreateSessionFactory() { return Fluently.Configure() .Database(MsSqlConfigu

我最近考虑过将Fluent NHibernate与.NET 4结合使用,我解决了这个问题,但遇到了一个新问题

摘要
我目前的主要问题是配置数据库。我正在关注,但尝试使用SQL Server 2008 Express,因为这是我将要使用的,因此我需要学习

失败代码:

public static ISessionFactory CreateSessionFactory()
{
    return Fluently.Configure()
        .Database(MsSqlConfiguration.MsSql2008.ConnectionString(c => c.FromConnectionStringWithKey("mssql")))
        .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Program>())
        .ExposeConfiguration(cfg => new SchemaExport(cfg).Create(true, true))
        .BuildSessionFactory();
}
公共静态ISessionFactory CreateSessionFactory()
{
流畅地返回。Configure()
.Database(MsSqlConfiguration.MsSql2008.ConnectionString(c=>c.fromConnectionString WithKey(“mssql”))
.Mappings(m=>m.FluentMappings.AddFromAssemblyOf())
.ExposeConfiguration(cfg=>newschemaexport(cfg).Create(true,true))
.BuildSessionFactory();
}
当我尝试运行应用程序时,在最后一行(
.BuildSessionFactory()
)出现以下异常:

重写成员时违反了继承安全规则:“FluentNHibernate.Cfg.FluentConfigurationException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)”。重写方法的安全可访问性必须与被重写方法的安全可访问性匹配。 原因是什么?

来自:

需要对安全属性进行修改 重新应用于从 也具有安全性的其他类型 属性

可能需要将
[SecurityPermission]
属性应用于其
GetObjectData()
方法

否则就退房


编辑:正在将
[SecurityCritical]
添加到

确定-但这是FluentNHibernate程序集中定义的类。我应该将其视为FluentNHibernate中的一个bug(我可以在自己的源代码副本中修复)还是FNH实现中的一个问题?我查看了System.Exception的源代码(请参见下面的链接),并在本地副本中将相同的属性添加到FluentConfigurationException中,但没有帮助。现在我再次阅读了错误消息,看起来更像是其他类型在继承FluentConfigurationException,但没有正确的权限,但我不知道在哪里。链接到来源:感谢更新!我查看了这篇博文,并按照它的建议做了(将属性添加到
AssemblyInfo.cs
),但没有任何帮助。我会关注新闻组的问题=)谢谢你提供的信息,请参阅以获取修复。不确定代码何时会合并到主线中。谢谢大家!我会尽快在我的FNH来源的本地副本上尝试这一点,并随时向您发布。我已将您的问题发布到Flune NHibernate邮件列表。希望他们能帮上忙。刚刚更新了我的答案,看看新链接你真的做到了吗?下面的解决方案解决了第一个问题,但随后我遇到了更多问题: