【问题标题】:Using application settings across assemblies跨程序集使用应用程序设置
【发布时间】:2008-11-15 22:35:42
【问题描述】:

我正在编写一个应用程序,该应用程序在不同的程序集中包含一个插件系统。

问题是插件系统需要从主应用程序中获取应用程序设置(比如寻找插件的目录)。

这是怎么做的,还是我走错了路?

编辑:我被鼓励添加一些关于插件系统如何工作的细节。我还没有完全解决这个问题,我才刚刚开始实施它,但我基本上是通过this article

【问题讨论】:

  • 您可能想要添加一些关于插件系统如何工作的细节。有很多不同的方式来处理主应用程序和插件之间的双向通信。

标签: c# .net plugins


【解决方案1】:

让主应用从应用设置中获取插件目录,并推送到插件系统中。

【讨论】:

    【解决方案2】:

    也许您可以在创建插件时将配置作为参数插入?

    //Get the configuration for the current appDomain
    System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    
    //Create the plugin, and pass in the configuration
    IPlugin myPlugin = new AlfaPlugin(config);
    

    您可能需要对 System.Configuration 程序集的引用。

    【讨论】:

      【解决方案3】:

      您可以编写自定义配置部分,它允许您编写表示 XML 模式的对象。建立后,您可以简单地询问该部分的当前实例。

      您可以通过从System.Configuration.ConfigurationSection 派生并编写表示属性和子元素的属性来做到这一点。如需更多信息,请参阅How to: Create Custom Configuration Sections Using ConfigurationSection

      运行库的 AppDomain 是当前配置范围。 System.Configuration 命名空间关联所有配置文件并呈现统一视图。

      要检索部分的当前实例,您可以使用ConfigurationManager.GetSection(...)

      您的插件应该接受此部分的实例,而不是一般的 Configuration 对象。

      【讨论】:

        猜你喜欢
        • 2012-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多