2010-06-17 3 views
3

Je construis un fournisseur personnalisé et je voudrais savoir comment spécifier un fichier de configuration différent (ex: MyProvider.Config) pour que mon fournisseur choisisse la configuration. Par défaut, il utilise Web.Config. Puis-je spécifier le chemin d'accès au fichier de configuration personnalisé dans la classe MyProviderConfiguration?Fichier de configuration personnalisé pour la configuration du fournisseur

Exemple:

internal class MyProviderConfiguration : ConfigurationSection 
{ 
    [ConfigurationProperty("providers")]   
    public ProviderSettingsCollection Providers 
    { 
     get 
     { 
      return (ProviderSettingsCollection)base["providers"]; 
     } 
    } 

    [ConfigurationProperty("default", DefaultValue = "TestProvider")] 
    public string Default 
    { 
     get 
     { 
      return (string)base["default"]; 
     } 
     set 
     { 
      base["default"] = value; 
     } 
    } 
} 

Merci

-Oleg

Répondre

0

Je ne suis pas sûr de ce que vous voulez faire. Si vous voulez juste charger un fichier de configuration à partir d'un autre endroit que vous pouvez effectuer les opérations suivantes:

ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap(); 
configFileMap.ExeConfigFilename = "<config file path>"; 

Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFileMap, ConfigurationUserLevel.None); 

MyProviderConfiguration customConfig = (MyProviderConfiguration)config.GetSection(" 

configSectionName ");

Si vous voulez juste de mettre votre configuration personnalisée dans un fichier séparé, vous pouvez faire:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
     <section name="myProviderConfiguration" type="Namespace.MyProviderConfiguration, AssemblyName" /> 
    </configSections> 
    <myProviderConfiguration configSource="configFile.config" /> 
</configuration> 

Et puis votre fichier configFile.config contiendrait:

<?xml version="1.0" encoding="utf-8"?> 
<myProviderConfiguration Default="value"> 
    <Providers> 
     <Provider /> 
    </Providers> 
</myProviderConfiguration> 

Si cela ne vous aide pas, pouvez-vous préciser votre question?

+0

Pour clarifier, je ne souhaite pas modifier Web.Config car la configuration du fournisseur peut être modifiée sur le site par les utilisateurs administrateurs. Si je stocke la configuration du fournisseur dans Web.config, le site sera redéfini lorsque quelqu'un modifie la configuration du fournisseur. Je pense que je peux utiliser votre ... configSource = "configFile.config" ... solution. Je suppose que le site ne sera pas redémarré lorsque j'éditerai configFile.config. Merci de votre attention. – OlegR

+0

Cela est correct, la modification du fichier séparé ne provoquera pas le redémarrage de l'application Web. – Bronumski

Questions connexes