Fournir des paramètres de configuration pour les bibliothèques : une alternative à App.config
Contrairement aux applications exécutables, les bibliothèques (DLL) n'ont pas d'accès direct à le fichier app.config. Cependant, il est possible de stocker les paramètres de configuration spécifiques à une bibliothèque tout en garantissant la compatibilité entre les applications qui l'utilisent.
Utiliser un fichier de configuration distinct
Une approche consiste à créer un fichier de configuration distinct accompagnant la DLL. Le nom du fichier suit une convention spécifique : DllName.dll.config. Contrairement à app.config, ce fichier n'est pas automatiquement chargé par l'application.
Pour charger et lire le fichier de configuration, vous pouvez définir une fonction personnalisée :
string GetAppSetting(Configuration config, string key) { // Retrieve the configuration element for the specified key KeyValueConfigurationElement element = config.AppSettings.Settings[key]; // Check if the element exists and has a non-empty value if (element != null && !string.IsNullOrEmpty(element.Value)) return element.Value; // Return an empty string if the key does not exist or has no value return string.Empty; }
Pour utiliser cette fonction, vous pouvez obtenir une instance de la classe Configuration et la transmettre à GetAppSetting :
Configuration config = null; // Determine the location of the executable's configuration file string exeConfigPath = this.GetType().Assembly.Location; // Attempt to load the configuration file try { config = ConfigurationManager.OpenExeConfiguration(exeConfigPath); } catch (Exception ex) { // Handle the error here, indicating that the DLL has no satellite configuration file } if (config != null) { // Read a setting using the custom function string myValue = GetAppSetting(config, "myKey"); // ... Use the setting as needed }
N'oubliez pas d'inclure une référence à l'espace de noms System.Configuration et de définir l'option "Copier vers le répertoire de sortie" du fichier .config à "Toujours copier" pour assurer son déploiement avec la DLL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!