【发布时间】:2011-10-08 20:40:47
【问题描述】:
如果目录不存在,有没有办法安全地使用 DirectoryCatalog 来处理?
这里是我的容器如何设置的代码示例:
//Create an assembly catalog of the assemblies with exports
var catalog = new AggregateCatalog(
new AssemblyCatalog(Assembly.GetExecutingAssembly()),
new AssemblyCatalog(Assembly.Load("My.Second.Assembly")),
new DirectoryCatalog("Plugins", "*.dll"));
//Create a composition container
var container = new CompositionContainer(catalog);
但是如果目录不存在就会抛出异常,我想忽略这个错误。
【问题讨论】:
-
在设置
AggregateCatalog之前是否有不能只检查目录存在的原因? -
我愿意,但 DirectoryCatalog 中似乎内置了一些不错的逻辑,用于获取正确的路径(不仅仅是当前目录)。有谁知道它的用途吗? Assembly.Location?
-
我对下面的答案发表了评论,但我也会在这里提到它......你不应该仅仅依靠检查目录是否存在。您应该考虑您希望处理的任何 IOExceptions(即,如果目录不存在,或者文件是否被锁定,或者 UAT 等)
标签: c# .net ioc-container mef