gpt4 book ai didi

c# - Enterprise Library 4.1 的多个配置源?

转载 作者:行者123 更新时间:2023-11-30 22:45:39 24 4
gpt4 key购买 nike

我们使用 entlib 4.1 中的缓存和日志应用程序 block 。我们希望将这两个配置保存在单独的文件中。我们怎样才能做到这一点?

看起来 entlib 总是使用 selectedSource 作为它的配置。

我尝试了以下方法:

<?xml version="1.0" encoding="utf-8" ?>    
<configuration>
<configSections>
<section name="enterpriseLibrary.ConfigurationSource" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ConfigurationSourceSection, Microsoft.Practices.EnterpriseLibrary.Common, Version=4.1.0.0, Culture=neutral, PublicKeyToken=9057346a2b2dcfc8" />

</configSections>

<enterpriseLibrary.ConfigurationSource selectedSource="messagesCache">
<sources>
<add name="messagesCache" filePath="Configuration\\messagesCache.config" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.FileConfigurationSource, Microsoft.Practices.EnterpriseLibrary.Common, Version=4.1.0.0, Culture=neutral, PublicKeyToken=9057346a2b2dcfc8" />
<add name="logging" filePath="Configuration\\logging.config" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.FileConfigurationSource, Microsoft.Practices.EnterpriseLibrary.Common, Version=4.1.0.0, Culture=neutral, PublicKeyToken=9057346a2b2dcfc8" />
</sources>

</enterpriseLibrary.ConfigurationSource>
</configuration>

但这不起作用,因为应用程序 block 始终使用 selectedSource 属性值。

最佳答案

External configuration files in Enterprise Library for .NET Framework 2.0 中所述:

[...] while you can configure as manyConfiguration Sources as you wantusing the tool, only one is ‘selected’to be the one which Enterprise Librarywill automatically use [...]

我所做的是使用 configSource 属性:

<configuration>
<configSections>
<section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<section name="exceptionHandling" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.ExceptionHandlingSettings, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<section name="validationConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Validation.Configuration.ValidationSettings, Microsoft.Practices.EnterpriseLibrary.Validation, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</configSections>

<loggingConfiguration configSource="logging.config"/>
<exceptionHandlingConfiguration configSource="exceptionHandling.config"/>
<dataConfiguration configSource="dataAccess.config"/>
<validationConfiguration configSource="validation.config"/>
</configuration>

效果很好,但缺点是如果您使用配置工具编辑您的应用程序/网络配置文件并保存您的配置,它将保存在应用程序/网络配置文件中。

关于c# - Enterprise Library 4.1 的多个配置源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2949145/

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