我有一个具有以下结构的解决方案:
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);
这使得目录扫描单元测试项目的输出目录,除了不希望目录扫描之外,还有很多问题。
是否有比我目前正在做的更正确的方式? 提前谢谢。
答案 0 :(得分:0)
我宁愿使用和AssemblyCatalog - 并将Builder项目中的静态引用添加到Model项目中,这样就可以避免文件夹的所有问题 - 扫描整个文件夹,部署期间目录结构更改,不同版本的程序集在同一个文件夹等 代码看起来像
var catalog = new AssemblyCatalog(typeof(YourModelType).Assembly);