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

4

最近我提出了一个问题关于如何在.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();
}

当我尝试运行我的应用程序时,我在最后一行(.BuildSessionFactory())收到以下异常:
在重写成员时违反继承安全规则:'FluentNHibernate.Cfg.FluentConfigurationException.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'。覆盖方法的安全可访问性必须匹配被覆盖方法的安全可访问性。

这是什么原因造成的?


我已经在Fluent NHibernate邮件列表上发布了您的问题。希望他们能够提供帮助。http://groups.google.com/group/fluent-nhibernate/browse_thread/thread/ae4013d711d2e4ad?hl=en - Meligy
刚刚更新了我的答案,请查看新链接。 - Mauricio Scheffer
你真的让它工作了吗?下面的解决方案修复了第一个问题,但是我遇到了更多问题:https://dev59.com/03E85IYBdhLWcg3wmEtW - stiank81
1个回答

8

好的 - 但是这是在FluentNHibernate程序集中定义的类。我应该将其视为FluentNHibernate中的错误(我可以在自己的源代码副本中修复),还是作为我的FNH实现中的问题? - Tomas Aschan
我查看了System.Exception的源代码(请参见下面的链接),并在我的本地副本中为FluentConfigurationException添加了相同的属性,但没有起到帮助作用。现在我再次阅读错误消息,似乎更像是某个其他类型正在继承FluentConfigurationException,但没有正确的权限,但我无法弄清楚是哪里出了问题。源代码链接:http://labs.developerfusion.co.uk/SourceViewer/browse.aspx?assembly=SSCLI&namespace=System&type=Exception - Tomas Aschan
谢谢更新!我查看了博客文章并按照建议进行了操作(在“AssemblyInfo.cs”中添加属性),但没有帮助。我会关注那个新闻组的问题 =) - Tomas Aschan
感谢提供信息,参见http://groups.google.com/group/fluent-nhibernate/browse_thread/thread/ae4013d711d2e4ad获取修复方案。不确定代码何时会合并到主线。 - Chris Chilvers
非常感谢大家!我会尽快在我的FNH源代码本地副本上尝试并向您报告。 - Tomas Aschan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接