Maison >développement back-end >C++ >Comment puis-je gérer les paramètres de configuration d'une DLL utilisée dans plusieurs applications ?
Question :
Comment stocker les paramètres de configuration spécifiques à un DLL pouvant être utilisée dans plusieurs applications ? Existe-t-il un équivalent au fichier 'app.config' pour les DLL ?
Réponse :
Création d'un fichier de configuration dédié
Bien qu'il n'y ait pas d'équivalent direct à « app.config » pour les DLL, il est possible de créer un fichier de configuration distinct pour votre DLL. Ce fichier doit être nommé au format 'DllName.dll.config.'
Obtention des paramètres de configuration
Pour accéder aux paramètres de configuration à partir de ce fichier séparé, vous pouvez utiliser le code suivant :
using System.Configuration; namespace MyDLL { public class ConfigurationHelper { public static string GetSetting(string key) { Configuration config = null; string dllPath = typeof(ConfigurationHelper).Assembly.Location; try { config = ConfigurationManager.OpenExeConfiguration(dllPath); } catch(Exception ex) { // Handle error, likely indicates missing configuration file. } if (config != null) { string value = GetAppSetting(config, "mySetting"); return value; }
Ce code tente d'abord d'ouvrir le fichier de configuration associé à la DLL. Si le fichier est trouvé, il récupère le paramètre avec la clé spécifiée à l'aide de la méthode 'GetAppSetting' :
private static string GetAppSetting(Configuration config, string key) { KeyValueConfigurationElement element = config.AppSettings.Settings[key]; if (element != null) { return element.Value; } return string.Empty; }
Déploiement et sortie
Pour garantir que la configuration est inclus lors du déploiement de la DLL, définissez la propriété « Copier dans le répertoire de sortie » du fichier .config sur « Toujours copier » dans votre projet Visual Studio. Cela garantira que le fichier est copié 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!