c# – 跨参考程序集重复配置
假设我们有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> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |