Странная проблема переопределения с Fluent NHibernate и .NET 4 - PullRequest
4 голосов
/ 18 декабря 2009

Я недавно задал вопрос об использовании 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();
}

Когда я пытаюсь запустить свое приложение, в последней строке появляется следующее исключение (.BuildSessionFactory()):

Нарушение правил безопасности наследования при переопределении члена: 'FluentNHibernate.Cfg.FluentConfigurationException.GetObjectData (System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'. Доступность для безопасности метода переопределения должна соответствовать доступности безопасности переопределяемого метода.

Что вызывает это?

1 Ответ

8 голосов
/ 18 декабря 2009

Из проблемы Microsoft Connect :

Атрибуты безопасности должны быть повторно применяется к типам, которые являются производными от другие типы, которые также имеют безопасность атрибуты.

Может быть FluentConfigurationException необходимо применить атрибут [SecurityPermission] к его GetObjectData() методу.

Еще проверьте это сообщение в блоге .

РЕДАКТИРОВАТЬ : окончательное решение добавляло [SecurityCritical] к FluentConfigurationException.GetObjectData()

...