【发布时间】:2014-07-04 06:12:23
【问题描述】:
我正在尝试动态映射一个或多个程序集,这些程序集本身是动态加载到 ASP.NET 网站中的。我有我的 web.config 设置以允许探测一个名为“paks”的子目录(它也设置为 appSetting,因此我可以稍后构建我的路径以访问 DLL),这可以 100% 正常加载主程序集,但 FluentNHibernate 有问题:
我的 .Mapping 如下所示:
.Mappings(m => {
foreach (String assembly in assemblies) {
String path = String.Format("{0}{1}\\{2}.dll", HttpRuntime.AppDomainAppPath, ConfigurationManager.AppSettings["Packages"], assembly);
AssemblyName y = AssemblyName.GetAssemblyName(path);
Assembly asm = Assembly.Load(y);
m.FluentMappings.AddFromAssembly(asm);
}
})
当我运行它时,我得到一个异常:
“无法编译映射文档:(XmlDocument)”
但是,如果我将第二组 DLL 复制到 \bin 目录中,事情就会神奇地开始工作。我假设是因为现在 NHibernate 可以找到 DLL,而以前它不能。我使用 Assembly.Load() 将它们动态加载到 .NET 中没有任何问题,那么为什么 NHibernate 在加载它们后会出现问题?
有人知道我该如何解决这个问题吗?
【问题讨论】:
标签: fluent-nhibernate mapping assemblies