4 Stimmen

Seltsames Überschreibungsproblem mit Fluent NHibernate und .NET 4

Ich habe kürzlich eine Frage gestellt über die Verwendung von Fluent NHibernate mit .NET 4 - ich habe dieses Problem gelöst, bin aber auf ein neues gestoßen.

Zusammenfassung
Mein Hauptproblem ist (im Moment) die Konfiguration der Datenbank. Ich bin folgende dieser Leitfaden aber ich versuche, stattdessen mit SQL Server 2008 Express zu arbeiten, da ich diesen verwenden werde und daher lernen muss.

Der fehlerhafte Code:

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();
}

Wenn ich versuche, meine Anwendung auszuführen, erhalte ich die folgende Ausnahme in der letzten Zeile ( .BuildSessionFactory() ):

Die Sicherheitsregeln für die Vererbung wurden beim Überschreiben des Mitglieds 'FluentNHibernate.Cfg.FluentConfigurationException.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)' verletzt. Die Sicherheitszugänglichkeit der überschreibenden Methode muss mit der Sicherheitszugänglichkeit der Methode übereinstimmen, die überschrieben wird.

Was ist die Ursache dafür?

8voto

Mauricio Scheffer Punkte 97391

Von der Microsoft Connect Problem :

Die Sicherheitsattribute müssen erneut angewandt werden o anderen Typen ableiten, die ebenfalls Sicherheits Attribute haben.

Vielleicht FluentConfigurationException muss die Anwendung eines [SecurityPermission] Attribut zu seinem GetObjectData() Methode.

Sonst siehe dieser Blogbeitrag .

EDIT : Die endgültige Lösung wurde hinzugefügt [SecurityCritical] a FluentConfigurationException.GetObjectData()

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X