Jer*_*xon 7 c# configuration-files
假设我们有Assembly1和Assembly2.
Assembly2是Assembly1使用的C#类库.
Web和服务引用已配置并存储在Asembly2/app.Config中.
此外,EF连接字符串在Assembly2/app.Config中.
当我在Assembly1中使用Assembly2时,不使用Assembly2配置文件.实际上,在该场景中,只有Assembly1配置可以通过默认方式访问.
因此,我必须将Assembly2配置内容复制到Assembly1配置中.
这对我来说很有用.
还有另外一种方法吗?更好的方法?
重复配置数据似乎是错误的.
你有推荐或技术吗?
谢谢.
您需要将更改应用于入口点 exe 程序集的配置文件。类库程序集 (dll) 配置文件从不使用。它们是由 Visual Studio 制作的,因此您可以根据需要轻松将设置复制到 exe 配置文件。
下面是 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, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
requirePermission="false" />
<!--This section declaratrion was here in the first place -->
<section name="MainAssembly.Properties.Settings"
type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, 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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1128 次 |
| 最近记录: |