2010-03-26 5 views
2

Dans mon projet, j'ai un service Windows et un service WCF effectuant certaines actions sur le même dossier sur un ordinateur. L'emplacement de ce dossier sera fourni par l'utilisateur dans un fichier app.config inclus dans le projet de service Windows.C# Obtention d'une chaîne à partir d'un fichier de configuration à utiliser par plusieurs projets

Maintenant, je veux que le service WCF connaisse l'emplacement de ce dossier (le dossier donné par l'utilisateur), sans que l'utilisateur doive le taper dans le fichier de configuration du service WCF.

Comment est-ce que je ferais cela?

Merci!

Répondre

1

Il y a beaucoup de possibilités ici:

  1. Ajoutez le chemin du fichier de configuration du service Windows en tant que paramètre dans le fichier de configuration du service WCF, et utiliser ce chemin pour lire le fichier avec un lecteur XML.

  2. Enregistrez le chemin du dossier dans un système centralisé, tel qu'une base de données ou dans le registre, et demandez aux deux services d'obtenir le paramètre à partir de cet emplacement centralisé.

  3. Spécifiez le chemin d'accès dans chaque fichier de configuration individuel, mais utilisez un événement post-construction pour vous assurer qu'ils restent à jour. (Par exemple, peut-être que l'événement post-construction récupère le paramètre de configuration de la base de données et l'écrit dans le fichier de configuration)

  4. Un service expose le paramètre de configuration en tant qu'appel de service public. Par exemple, le service WCF peut appeler une méthode sur le service Windows pour déterminer le chemin à traiter.

+0

Merci! Comment fonctionne l'appel de service public? – Andrei

1

Vous pouvez le placer dans Machine.config et l'application WCF et le service Windows peuvent y accéder.

http://msdn.microsoft.com/en-us/library/ms229697(VS.71).aspx

+0

Bien que cela fonctionne, je serais prudent sur le stockage des paramètres dans le fichier Machine.config. En général, cela représentera un fardeau de maintenance car il n'est pas très courant de rechercher une configuration spécifique à l'application par opposition aux fichiers de configuration d'application désignés. Si vous devez cependant, laissez une référence claire comme une remarque dans les fichiers de configuration de l'application et/ou dans le code source. –

+0

En règle générale, nous gardons tout le code spécifique à l'environnement dans le fichier machine.config. Je ne dirais pas que c'est rare de placer des valeurs de configuration là-bas. – kemiller2002

Questions connexes