加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 跨参考程序集重复配置

发布时间:2020-12-15 08:02:28 所属栏目:百科 来源:网络整理
导读:假设我们有Assembly1和Assembly2. Assembly2是Assembly1使用的C#类库. Web和服务引用已配置并存储在Asembly2 / app.Config中. 此外,EF连接字符串在Assembly2 / app.Config中. 当我在Assembly1中使用Assembly2时,不使用Assembly2配置文件.实际上,在该场景中,
假设我们有Assembly1和Assembly2.

Assembly2是Assembly1使用的C#类库.

Web和服务引用已配置并存储在Asembly2 / app.Config中.

此外,EF连接字符串在Assembly2 / app.Config中.

当我在Assembly1中使用Assembly2时,不使用Assembly2配置文件.实际上,在该场景中,只有Assembly1配置可以通过默认方式访问.

因此,我必须将Assembly2配置内容复制到Assembly1配置中.

这对我来说很有用.

还有另一种方式吗?更好的方法?

重复配置数据似乎是错误的.

你有推荐或技术吗?

谢谢.

解决方法

您需要将更改应用于入口点exe程序集的配置文件.从不使用类库汇编(dll)配置文件.它们由Visual Studio制作,因此您可以根据需要轻松地将设置复制到exe配置文件.

Bellow是exe程序集的配置文件的示例,它包含类库ClassLibrary1的设置和exe程序集MainAssembly的设置.您可以看到两个连接字符串都在一个connectionStrings设置中.但是,如果您需要设置其他设置,则在连接字符串旁边,您需要添加额外的部分.

如果您已经在使用这种技术,这是正确的方法.这种技术很灵活.例如,如果一个框上有多个具有相同连接字符串的项目,则可以在machine.config文件中指定连接字符串.如果需要,您还可以覆盖某些项目中的设置.

<?xml version="1.0"?>
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings"
                  type="System.Configuration.ApplicationSettingsGroup,System,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" >

      <!--This section declaratrion pasted here from dll conifg file -->
      <section name="ClassLibrary1.Properties.Settings"
               type="System.Configuration.ClientSettingsSection,PublicKeyToken=b77a5c561934e089"
               requirePermission="false" />

      <!--This section declaratrion was here in the first place -->
      <section name="MainAssembly.Properties.Settings"
               type="System.Configuration.ClientSettingsSection,PublicKeyToken=b77a5c561934e089"
               requirePermission="false" />
    </sectionGroup>
  </configSections>
  <connectionStrings>

    <!--This connection string was here in the first place -->
    <add name="MainAssembly.Properties.Settings.MainAssemblyConnectionString"
         connectionString="MainConnectionStringValue" />

    <!--This connection string pasted here from dll config file -->
    <add name="ClassLibrary1.Properties.Settings.LibraryConnectionString"
         connectionString="LibraryConnectionStringValue"
         providerName="" />
  </connectionStrings>
  <applicationSettings>

    <!--This settings section pasted here from dll config file -->
    <ClassLibrary1.Properties.Settings>
      <setting name="LibrarySetting"
               serializeAs="String">
        <value>LibrarySettingValue</value>
      </setting>
    </ClassLibrary1.Properties.Settings>

    <!--This strings section was here in the first place -->
    <MainAssembly.Properties.Settings>
      <setting name="MainAssemblySetting"
               serializeAs="String">
        <value>MainSettingValue</value>
      </setting>
    </MainAssembly.Properties.Settings>
  </applicationSettings>
</configuration>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读