【发布时间】:2012-09-28 16:21:23
【问题描述】:
我有一个通过反射调用其他库中的方法的服务。但是,其中一些库具有外部依赖项,例如有时用于执行其工作的 app.config 文件。
是否有任何关于如何做到这一点的最佳实践,或任何可以帮助解决这种情况的库?
例如:如果我的服务应该在方法 foo() 上调用外部 dll,则 foo() 会使用 app.config 获取字符串列表,但直接与反射一起使用时会崩溃。
【问题讨论】:
-
@yms:不完全是,因为服务也会有自己的配置文件,但可能需要从几个读取到它的“配置容器”
-
也许您可以在单独的 Appdomain 中加载 dll 并使用 msdn.microsoft.com/en-us/library/…
-
感谢 Amit,这是对进一步研究的有用建议
-
恕我直言,单独的 Appdomain 可能更适合这种情况,因为要调用的代码是外部的。该代码的失败不应导致整个服务瘫痪。但是,如果您不想那样做,@yms 指向的帖子(尽管它很老套,如果内部实现在未来的 .net 版本中发生更改可能会停止工作)仍然对您有用。您可以使用公认的解决方案,例如 // 使用默认的 app.config。 using(AppConfig.Change(tempFileName)) { // tempFileName 中的 app.config 在内部使用时使用 // 调用外部方法 }
标签: c# asp.net reflection dll configuration