2009-12-17 6 views
4

J'ai récemment asked a question sur l'utilisation de Fluent NHibernate avec .NET 4 - J'ai résolu ce problème, mais en ai rencontré un nouveau.Bizarre problème de remplacement avec Fluent NHibernate et .NET 4

Résumé
Mon principal problème (pour le moment) est configuration de la base. Je suis this guide, mais en essayant de travailler contre SQL Server 2008 Express, car c'est ce que je vais utiliser et donc ce que j'ai besoin d'apprendre.

Le code défaut:

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

Lorsque je tente de lancer ma demande, je reçois l'exception suivante sur la dernière ligne (.BuildSessionFactory()):

règles de sécurité d'héritage violé tout en remplaçant membre: 'FluentNHibernate.Cfg.FluentConfigurationException.GetObjectData (System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'. L'accessibilité de la sécurité de la méthode prioritaire doit correspondre à l'accessibilité de la méthode redéfinie.

À quoi cela cause-t-il?

+0

J'ai posté votre question à la liste de diffusion Flune NHibernate. J'espère qu'ils peuvent l'aider. http://groups.google.com/group/fluent-nhibernate/browse_thread/thread/ae4013d711d2e4ad?hl=fr – Meligy

+0

vient de mettre à jour ma réponse, consultez le nouveau lien –

+0

L'avez-vous réellement fait fonctionner? La solution ci-dessous a résolu le premier problème, mais j'ai rencontré d'autres problèmes: http://stackoverflow.com/questions/2697795/using-fluentnhibernate-with-net4 – stiank81

Répondre

8

De l'Microsoft Connect issue:

attributs de sécurité doivent être réappliqués sur les types qui dérivent de autres types qui ont également la sécurité attributs.

Peut-être FluentConfigurationException doit appliquer un attribut [SecurityPermission] à sa méthode GetObjectData().

Sinon, consultez this blog post.

EDIT: Le final solution ajoutais [SecurityCritical] à FluentConfigurationException.GetObjectData()

+0

OK - mais il s'agit d'une classe définie dans l'assembly FluentNHibernate. Dois-je prendre cela comme un bug dans FluentNHibernate (que je peux corriger dans ma propre copie de la source) ou comme un problème dans ma mise en œuvre de FNH? –

+0

J'ai regardé la source de System.Exception (voir le lien ci-dessous) et ajouté le même attribut à FluentConfigurationException dans ma copie locale, mais cela n'a pas aidé. Maintenant que j'ai relu le message d'erreur, il semble plutôt qu'un autre type hérite FluentConfigurationException, sans les permissions correctes, mais je ne peux pas savoir où. Lien vers la source: http://labs.developerfusion.co.uk/SourceViewer/browse.aspx?assembly=SSCLI&namespace=System&type=Exception –

+0

Merci pour la mise à jour! J'ai regardé dans le billet de blog et fait ce qu'il a suggéré (ajouté l'attribut à 'AssemblyInfo.cs') mais cela n'a pas aidé. Je vais garder un oeil sur cette question de groupe de nouvelles =) –

Questions connexes