2011-08-02 24 views

回答

9

它归结时候,为什么你想有一个配置文件。它的要点是:

  • ConfigurationManager将拉应用程序本身的配置文件(可以选择受当前用户限制)。
  • AppDomain将回传它加载的任何配置文件(在某些情况下,它可能与应用程序的文件相同)。

作为一个粗略的例子,让我们假设一个假想的应用程序,它可以使用它随时添加/删除的插件。您不希望在应用程序的整个生命周期内将这些插件程序集保存在内存中,否则将无法达到目的,因此您可以在应用程序中创建一个单独的AppDomain。它将处理应用程序和插件程序集之间的加载和通信,做你需要做的任何事情,应用程序可以通过在需要时删除AppDomain来卸载程序集。

插件AppDomain有很多设置,您宁愿将它们与客户端配置文件分开,所以当您创建AppDomain时,您需要指定单独的文件位置。在 AppDomain中,配置文件是那个文件

但是,客户端配置可能取决于谁在使用它(并且他们可能有能力更改它并自定义它们的设置)。您宁愿使用由给定用户隔离的应用程序范围的配置,而不是让他们选择混淆插件特定的设置(或其他用户的设置)。 ConfigurationManager理论上可以从中抽取任意数量的文件

这是一个非常普遍的想法,它将手中的所有实现手工扫除,但希望能够开始说明两者可能会有所不同。

以下是AppDomainSetupOpenExeConfiguration()的MSDN页面,这些页面可能很有用,并且具有指向配置相关资源的其他链接。

+0

这是一个很好的解释。谢谢!我打算把这个问题留待另外一两天看看是否有其他人加入。 –

相关问题