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

Tom*_*han 4 nhibernate .net-4.0 fluent-nhibernate

我最近问了一个关于在.NET 4中使用Fluent NHibernate 的问题 - 我解决了这个问题,但遇到了一个新问题.

总结
我的主要问题(目前)是配置数据库.我正在遵循本指南,但试图反对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();
}
Run Code Online (Sandbox Code Playgroud)

当我尝试运行我的应用程序时,我在最后一行(.BuildSessionFactory())得到以下异常:

覆盖成员时违反了继承安全规则:'FluentNHibernate.Cfg.FluentConfigurationException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)'.覆盖方法的安全性可访问性必须与被覆盖的方法的安全性可访问性相匹配.

是什么造成的?

Mau*_*fer 8

Microsoft Connect问题:

需要在从具有安全属性的其他类型派生的类型上重新应用安全属性.

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

另外,请查看此博客文章.

编辑:在最终的解决方案是加入[SecurityCritical]FluentConfigurationException.GetObjectData()