使用导入为.dll的UserControl中的设置文件

本文关键字:UserControl 设置 文件 dll 导入 | 更新日期: 2023-09-27 18:14:23

我创建了一个简单的"Wpf用户控制库",其中包含一个UserControl (xaml与。cs代码在文件后面)和一个包含简单设置的设置文件。在最终应用程序中非常需要设置文件,用户可以轻松地更改设置文件中的一些设置,因此我不必为更改简单设置创建UI和逻辑。

在构建解决方案后,我有一个。dll,一个。pdb和设置文件(.config),其中设置易于阅读。

现在,在最终的应用程序中,用户控制.dll被导入(作为参考添加),usercontrol按预期工作,我在设置文件中设置的设置仍在工作,但在调试文件夹中没有设置文件(.config),因此,现在用户可以根据需要轻松更改设置。

这是怎么回事?我如何将用户控件的设置文件与最终应用程序一起发布?

使用导入为.dll的UserControl中的设置文件

首先,您可能不应该发布尚未在发布模式下构建的东西。

其次,根据我的经验,一个应用程序只能有一个可执行的应用程序配置文件,由. net配置类自动加载。

处理此问题的正确方法是注意在applicationSettings sectionGroup下为DLL生成的设置命名空间,并让用户将其插入主应用程序可执行的.config文件中。

 <configuration>   
   <configSections>
      <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
         <section name="My.UserControlAssembly.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
      </sectionGroup>
    </configSections>
    ...
    <applicationSettings>
      <My.UserControlAssembly.Properties.Settings>
        ...settings elements would go here...
       </My.UserControlAssembly.Properties.Settings>
    </applicationSettings>
</configuration>

Edit:在进一步的调查中,我发现这篇文章告诉您如何设置自己的configSection,以便您可以引用多个文件。但是,它没有指定这是否自动适用于ConfigurationManager类,因此我将进行试验,最坏的情况下,使用我上面描述的方法。

是否有任何方法为App.config文件引用另一个完整的配置文件?(. net)