【问题标题】:Overriding application settings覆盖应用程序设置
【发布时间】:2013-09-25 11:06:04
【问题描述】:

我有一个解决方案,它有一个 WinForm 应用程序(项目 1),它利用了另一个类库项目(项目 2)中的 Class2。项目 2 使用在另一个类库项目(项目 3)中定义的 class3

我知道我可以从我的主 WinForm 应用程序覆盖项目 2 的应用程序设置,但是,我的问题是,我可以从我的应用程序覆盖类库项目(项目 3)中定义的应用程序设置吗?主 WinForm 应用程序(项目 1)

我知道这看起来让事情变得复杂了,但我不得不从我的主应用程序中覆盖 Project 3 的应用程序设置。

谁能说明这个方向并建议如何解决这个问题?

仅供参考...

当你添加一个setting.settings文件时,它会自动创建一个app.config文件,我们可以通过VS中的setting.settings UI配置applicationSettings。下面是来自 Project3 的 app.config 文件内容,我有兴趣在另一个 WinForm 项目中覆盖其 applicationSettings。

 <?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="Project3.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <applicationSettings>
        <Project3.Settings>
            <setting name="SettingInProject3" serializeAs="String">
                <value>TempPath</value>
            </setting>
        </Project3.Settings>
    </applicationSettings>
</configuration>

WinForm应用程序的app.config文件中的哪些修改可以覆盖Project3类库中定义的设置。

引用的层次结构是这样的。 WinForm>Project2DLL>Project3DLL.

如果需要更多信息,请告诉我。

【问题讨论】:

  • 请显示一些代码
  • 我遇到了这个确切的问题...

标签: c# class-library application-settings


【解决方案1】:

在 Visual Studio 中打开源项目中的设置,确保 Visual Studio 中设置查看器中的访问修饰符(顶部)设置为公共。现在可以从您的外部项目中访问这些设置。

【讨论】:

  • 嗨 Reckface,非常感谢您的回复。是的,它会正常工作。但是,就我而言,我必须覆盖 Project3 dll 的设置,其引用在 Project2 dll 中给出,其引用已添加到我的主 WinForm 项目中,我应该在其 app.config 文件中覆盖 applicationSetting。如果此信息不清楚,请告诉我。提前致谢。
  • 您是否尝试在项目 1 中添加项目 3 作为参考?或者在项目 2 中编写一个设置管理器类,让您可以访问项目 3 中的设置。它需要一个公共属性和一个公共 Save 方法来保存基础更改。
  • 这是一个不错的开始。那么,如果我使用设置管理器类保存更改,这些更改会反映在 project3 的 app.config 文件中还是会保存在 AppData 中?只是想知道,因为我应该能够通过仅更新 app.config 来推动这些更改。谢谢你的时间。
猜你喜欢
  • 2016-07-21
  • 2016-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-15
  • 2019-04-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多