2010-09-15 1 views
0

Je travaille avec nHibernate.Ajout de l'assembly signé à nHibernate

J'ai fait un Assembly (ex: DAL.dll), qui contient les fichiers de mapping (.hbm.xml) et les entités (.cs). Cette Assemblée a un nom fort (signé).

J'ai créé un projet de console, qui référence l'assembly DAL (DAL.dll). Lorsque j'essaie d'instancier la configuration, elle échoue lors du chargement de mon assemblage DAL.

L'erreur est la suivante:

NHibernate.MappingException: Impossible de compiler le document de mapping: DAL.Mappings.Cat.hbm.xml NHibernate.MappingException: DAL.Cat de classe persistante, DAL introuvable

C'est le code d'application de la console:

     Configuration cfg = new Configuration(); 
         cfg.SetProperty(Environment.ConnectionDriver, "NHibernate.Driver.SqlClientDriver"); 
         cfg.SetProperty(Environment.ConnectionString, dsn); 
         cfg.SetProperty(Environment.Dialect, typeof(MsSql2005Dialect).AssemblyQualifiedName); 
         cfg.SetProperty(Environment.ProxyFactoryFactoryClass, typeof(NHibernate.ByteCode.Castle.ProxyFactoryFactory).AssemblyQualifiedName); 
         cfg.SetProperty(Environment.ShowSql, "true"); 
         cfg.SetProperty(Environment.ConnectionProvider, typeof(DriverConnectionProvider).AssemblyQualifiedName); 
         cfg.AddAssembly(typeof(DAL).Assembly); 

le problème est que le hbm.xml f faisant référence aux Îles sont des entités comme:

<class name="DAL.Cat,DAL"> 

Y at-il une autre solution que le référencement de chaque classe avec leur nom complet (avec la clé, etc.)

Merci!

Répondre

0

Un peu plus propre façon de spécifier les applications qui peuvent vous aider est:

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
        namespace="DAL" 
        assembly="DAL assembly fully qualified name"> 
    <class name="Cat"> 
    ... 

Cependant, cela devrait fonctionner même si le nom de montage n'est pas qualifié. Essayez différentes combinaisons et voyez ce qui se passe.

+0

C'est exactement ce que j'attends! Merci beaucoup. – Antoine