gpt4 book ai didi

c# - Mono (Linux) 中多个 C# 库的应用程序设置

转载 作者:行者123 更新时间:2023-11-30 18:39:37 25 4
gpt4 key购买 nike

我有一个项目被移植到 Linux 下的 Mono 下工作。该项目包括多个 C# 库,它们有自己的用户范围、应用程序设置(通过 VS2008 自动生成)。最终,该项目将在 Windows 中的 .NET 和 Ubuntu 10.04 中的 Mono 上运行。

在 Windows 中运行时,应用程序设置存储在单个 user.config 文件中,每个库都有单独的配置部分:

<configuration>
<configSections>
<sectionGroup name="userSettings" type="UserSettingsGroup ...>
<section name="LibFoo.Properties.Settings" type="ClientSettingsSection ... />
<section name="LibBar.Properties.Settings" type="ClientSettingsSection ... />
</sectionGroup>
</configSections>
<userSettings>
<LibFoo.Properties.Settings>
<setting name="strFoo" serializeAs="String">
<value>An example string value.</value>
</setting>
</LibFoo.Properties.Settings>
<LibBar.Properties.Settings>
<setting name="strBar" serializeAs="String">
<value>An example string value.</value>
</setting>
</LibBar.Properties.Settings>
</userSettings>
</configuration>

在 Ubuntu 中,创建了单个 user.config,但是,我发现无论哪个库首先调用 Properties.Settings.Save(),都只创建了一个部分,并且所有库都使用相同的部分:

<configuration>
<configSections>
<sectionGroup name="userSettings" type="UserSettingsGroup ... >
<section name="LibFoo.Properties.Settings" type="ClientSettingsSection ... />
</sectionGroup>
</configSections>
<userSettings>
<LibFoo.Properties.Settings>
<setting name="strFoo" serializeAs="String">
<value>An example string value.</value>
</setting>
<setting name="strBar" serializeAs="String">
<value>An example string value.</value>
</setting>
</LibFoo.Properties.Settings>
</userSettings>
</configuration>

当库中的设置具有相同的名称时,这会变得特别麻烦。

这是 Mono 中的一个错误,还是我需要为 Mono 更改某些内容以便为我的库设置生成单独的部分?

  • Ubuntu v10.04
  • 单声道运行时 v2.10.8
  • Visual Studio 2008 专业版

最佳答案

为避免配置名称相同的问题,您可以尝试将配置设置放在每个 DLL 的配置文件中。您的配置文件需要具有名称“MyDLL.dll.config”(假设您的 DLL 被命名为“MyDLL.dll”)并且与 DLL 位于同一文件夹中。

(从未在单声道下测试过)

在dll的配置文件中写入:

您可以创建一个扩展方法“Save”,并在该方法中使用反射来检索程序集名称(调用程序集,而不是当前程序集),然后使用 SaveAs 保存配置。这样你就有了一种保存在 dll 配置文件中的方法。

关于c# - Mono (Linux) 中多个 C# 库的应用程序设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9383120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com