映射存储在不同文件夹中的程序集中的类

时间:2011-06-03 15:34:30

标签: c# nhibernate mef fluent

我正在尝试使用MEF和流畅的Nhibernate构建一个可扩展的应用程序作为ORM。 它一直运行良好,直到我决定将扩展程序集存储在一个单独的文件夹中 (\扩展)。 MEF加载扩展没有任何问题,但是 nhibernate抛出异常,因为它找不到程序集。

有没有办法将扩展文件夹添加到程序集搜索路径?

MEF成分:

[ImportMany]
public IEnumerable<IModule> Modules { get; private set; }

public void LoadModules()
{
    _initialized = false;
    var catalog = new DirectoryCatalog("Extensions");
    var container = new CompositionContainer(catalog);
    container.ComposeParts(this);

}

映射:

foreach (var module in modules)
{
    var assembly = module.GetType().Assembly;
    config.Mappings(m => m.FluentMappings.AddFromAssembly(assembly));
}

1 个答案:

答案 0 :(得分:0)

如果我正确理解你的问题,有几个选择:

如果您的Extension目录位于应用程序目录的子目录中,则

AppDomain.CurrentDomain.SetupInformation.PrivateBinPath将起作用。

或者,您可以处理AppDomain.AssemblyResolve事件。

相关问题