Nhibernate通过代码将GAC程序集添加到映射

Nhibernate通过代码将GAC程序集添加到映射,nhibernate,mapping-by-code,Nhibernate,Mapping By Code,我将MyCompany.Entities.Employee.dll和MyCompany.Mapping.dll中的EmployeeEntity存储在GAC中 我使用代码映射创建ISessionFactory实现,如下所示: var config = new Configuration(); // Initialize config code omitted... var mapper = new ModelMapper(); mapper.AddMapping(typeof(EmployeeM

我将
MyCompany.Entities.Employee.dll
MyCompany.Mapping.dll
中的
EmployeeEntity
存储在GAC中

我使用代码映射创建ISessionFactory实现,如下所示:

var config = new Configuration();
// Initialize config code omitted... 
var mapper = new ModelMapper();
mapper.AddMapping(typeof(EmployeeMap));   
config.AddDeserializedMapping(mapping, "ExampleMapping");
// Exception thrown here:Could not compile the mapping document: ExampleMapping
// InnerException:persistent class KT.NHibernate.Mapping.Entities.Employee, KT.Nhibernate.Mapping.Entities not found
return config.BuildSessionFactory();

如何正确配置配置实例以在映射中使用GAC程序集?

这与GAC无关。您需要捕获异常并查看内部异常,以找出错误所在-可能是映射中的某些内容。

我发现了这一点

mapping.assembly=“MyCompany.Entities.Employee assembly强名称”


找不到持久类KT.NHibernate.Mapping.Entities.Employee、KT.NHibernate.Mapping.Entities
所有类都是公共的,并且在本地部署的程序集中还是在GAC中?您还可以指定完整的程序集限定名,包括公钥标记:KT.NHibernate.Mapping.Entities.Employee,KT.NHibernate.Mapping.Entities,Version=xxx,Culture=neutral,PublicKeyToken=xxx。所有类都是公共的,程序集都加载到GAC中(使用gacutil进行测试)。显示了从ConsoleApplication运行的代码。如何指定完整程序集名称?我尝试了
config.AddAssembly(“MyCompany.Entities,Version=1.0.0.0,Culture=neutral,PublicKeyToken=0e3d5f149e92470e”)
但仍然得到相同的exceptionOK,在.hbm.xml文件中是否有类似的内容: