C# MEF目录目录

C# MEF目录目录,c#,.net,mef,C#,.net,Mef,我有一个具有以下结构的解决方案: 项目模型 项目建设者 项目.单元测试 在生成器项目中,它应该使用MEF创建模型实例。 因此,在Builder类构造函数中,我希望它有一个容器来容纳仅与构建模型相关的部分(作为关注点的分离) 目前我使用的目录目录如下: var path = Environment.CurrentDirectory; var catalog = new DirectoryCatalog(path + @"\Builder\bin\Debug"); 因此,在单元测试项目中,我可以使

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

项目模型

项目建设者

项目.单元测试

在生成器项目中,它应该使用MEF创建模型实例。 因此,在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);
bu这已经使目录扫描了单元测试项目的输出目录,这些项目产生了很多问题,除了不在我希望目录扫描的地方之外

有没有比我现在做的更正确的方法? 提前感谢。

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

var catalog = new AssemblyCatalog(typeof(YourModelType).Assembly);
我宁愿使用and,并将一个静态引用从Builder项目添加到Model项目,这样您就可以避免文件夹的所有问题—扫描整个文件夹、部署过程中目录结构的更改、同一文件夹中程序集的不同版本,等等。 代码看起来像

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