2010-06-01 9 views
2

Nous utilisons les blocs d'application de mise en cache et de journalisation d'entlib 4.1. Nous voulons garder la configuration de ces deux fichiers dans des fichiers séparés. Comment pouvons-nous y parvenir?Sources de configuration multiples pour Enterprise Library 4.1?

Il semble que entlib utilise toujours la source sélectionnée comme configuration.

J'ai essayé les éléments suivants:

<?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> 

Mais cela ne fonctionne pas parce que les blocs d'application utilisent toujours la valeur de l'attribut selectedSource.

Répondre

3

Comme indiqué dans External configuration files in Enterprise Library for .NET Framework 2.0:

[...] alors que vous pouvez configurer autant de des sources de configuration que vous souhaitez à l'aide de l'outil, un seul est « sélectionné » être celui qui l'entreprise bibliothèque utilisera automatiquement [...]

Ce que je l'ai fait est d'utiliser l'attribut 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> 

Cela fonctionne très bien, mais l'inconvénient est que si vous éditez votre application/fichier de configuration Web en utilisant l'outil de configuration et enregistrer votre configuration, il sera sauvegardé dans le fichier application/web config.

+0

*** section d'exécution *** problèmes avec ** configSource ** – Kiquenet