MEF目录目录

时间:2016-03-19 12:22:41

标签: c# .net mef

我有一个具有以下结构的解决方案:

project.Model

project.Builder

project.Unit Tests

在构建器项目中,它应该使用MEF创建一个Model实例。 所以在Builder类构造函数中,我希望它有一个容器来保存与构建模型相关的部分(作为关注点的分离)。

目前我正在使用目录目录,如下所示:

var path = Environment.CurrentDirectory;
var catalog = new DirectoryCatalog(path + @"\Builder\bin\Debug");

这样在单元测试项目中我可以使用这个容器来编写单元测试函数。 有没有更好的方法使构建器容器只有驻留在构建器项目输出目录(bin \ debug)中的dll。 我尝试过使用:

var directory = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
var catalog = new DirectoryCatalog(directory);

这使得目录扫描单元测试项目的输出目录,除了不希望目录扫描之外,还有很多问题。

是否有比我目前正在做的更正确的方式? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我宁愿使用和AssemblyCatalog - 并将Builder项目中的静态引用添加到Model项目中,这样就可以避免文件夹的所有问题 - 扫描整个文件夹,部署期间目录结构更改,不同版本的程序集在同一个文件夹等 代码看起来像

var catalog = new AssemblyCatalog(typeof(YourModelType).Assembly);