L'Accès Aux Propriétés.Les paramètres de userSettings à partir d'une DLL
Un composant de l'interface graphique de mon application principale est son propre projet, et la principale de l'application utilise juste le .dll de l'interface du composant lors de l'exécution. Depuis le userSettings
sont stockés dans l'interface du composant app.config
, dont l'application principale ne copie pas, je ne peux pas enregistrer userSettings (aucun utilisateur.config créé).
Les moyens possibles autour de ce que je vois, sont soit capable de stocker le composant userSettings
dans un fichier de config (référencé par son app.config
) qui est copié à l'application principale du répertoire au moment de l'exécution, ou en quelque sorte de mettre toutes les userSettings
à l'application principale (depuis sa .exe.config
est copié), et y accéder à partir du composant d'interface graphique.
Cependant, je n'ai pas été en mesure d'obtenir l'une de ces méthodes de travail pour l'enregistrement de la userSettings
. Des idées? Si une clarification est nécessaire, s'il vous plaît laissez-moi savoir.
OriginalL'auteur Tara | 2011-06-22
Vous devez vous connecter pour publier un commentaire.
Vous devriez être en mesure de déplacer le
Settings
du projet principal Propriétés les Propriétés de votre composant d'interface graphique DLL (ou créer unSettings.dll
si vous préférez).Référence à ce DLL à partir de votre application principale et ajouter
using
états de sorte que vous pouvez accéder àSettings.Default
. Ensuite, vous devez modifier le modificateur d'accès le fichier de paramètres. C'est un peu la non-évident, mais expliqué dans le La documentation MSDN. Voici une capture d'écran:Une fois que vous changez de ce "public", vous pouvez simplement lire les paramètres de n'importe où dans votre application.
Avertissement: N'avez pas plus de 1 Paramètres de chaque application en cours d'exécution parce que la mise en œuvre est un singleton, et vous obtiendrez des résultats inattendus. Si vous en avez une copie de Paramètres, il n'a pas besoin d'être dans l' .exe dll - il peut être partout où vous voulez qu'il soit.
Je suppose que vous n'essayez pas de les ré-utiliser dans toutes les applications.
OriginalL'auteur Simon_Weaver
Ah - la terrible Propriétés.Les paramètres de!
Il y a plusieurs moyens de contourner cela, mais toutes impliquent une certaine reprise.
Plus simple - utiliser appsettings au lieu de ApplicationSettings:
Copiez le appsettings requis dans chaque application qui l'utilise.
Avantages: facile, Contre: paramètres de configuration de partout!
Créer une Section de configuration: Beaucoup d'articles sur ce sujet - voir http://joelabrahamsson.com/entry/creating-a-custom-configuration-section-in-net par exemple.
Fondamentalement, vous pouvez avoir votre séparée fichier de configuration que vous devez copier dans chaque déployable que nécessaire - il suffit de référence de l'ensemble où vous créez vos Objets de Configuration à chaque déployable qui en a besoin, et de mettre à jour le fichier de config de référence inclus le fichier de configuration personnalisé.
Pros: bien Rangé, vous pouvez l'envelopper de validation à l'intérieur de l'Objet de Configuration, plus propres fichiers de configuration, les Inconvénients: Prend un peu plus long à configurer.
Il en existe d'autres - y compris stocker des valeurs dans un fichier XML et la désérialisation à une classe au moment de l'exécution. En utilisant la même approche, mais en les stockant dans une base de données à la place. etc. etc.
Vous pouvez définir un chemin d'accès à un fichier de config dans appSettings - ce qui pourrait être un fichier partagé que tous les engins déployables utilisation. codeproject.com/KB/dotnet/appsettings_fileattribute.aspx
Je vous conseille cependant de prendre la 2ème option plutôt que l'approche ci-dessus - il vous servir mieux dans le long terme
OriginalL'auteur BonyT