我有一个具有以下结构的解决方案:
project.Model
project.Builder
project.Unit测试
在构建器项目中,它应该使用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);但是这会使目录扫描单元测试项目的输出目录,这些项目造成了很多问题,而不是我希望目录扫描的地方。
有没有比我现在做的更正确的方法?提前谢谢。
发布于 2016-03-20 01:39:40
我更喜欢使用和AssemblyCatalog -并从生成器项目添加静态引用到模型项目,这样您就可以避免所有文件夹问题-扫描整个文件夹,部署期间目录结构更改,同一文件夹中不同版本的程序集,等等。
var catalog = new AssemblyCatalog(typeof(YourModelType).Assembly);https://stackoverflow.com/questions/36101674
复制相似问题