Je dispose d'un fichier app.config qui sous la forme de:Comment lire la valeur d'un attribut défini dans app.config?
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<client>
<endpoint address="http://something.com"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IFileTransfer"
contract="ABC" name="XXX" />
<endpoint address="http://something2.com"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IFileTransfer"
contract="ABC2" name="YYY" />
</client>
</system.serviceModel>
</configuration>
Je veux lire la valeur à l'attribut « adresse » du point de terminaison de noeud qui a le nom = « XXX ». S'il vous plaît montrez-moi comment le faire!
(Continuer belowing disscussing avec marc_s Désolé de mettre le texte ici depuis des commentaires ne permet pas de codes de format.) @marc_s: J'utilise les codes ci-dessous pour lire le fichier ci-dessus, mais il montre que les clientSection.Endpoints a 0 membres (Count = 0). S'il vous plaît aider!
public MainWindow()
{
var exeFile = Environment.GetCommandLineArgs()[0];
var configFile = String.Format("{0}.config", exeFile);
var config = ConfigurationManager.OpenExeConfiguration(configFile);
var wcfSection = ServiceModelSectionGroup.GetSectionGroup(config);
var clientSection = wcfSection.Client;
foreach (ChannelEndpointElement endpointElement in clientSection.Endpoints)
{
if (endpointElement.Name == "XXX")
{
var addr = endpointElement.Address.ToString();
}
}
}
vous ne devriez pas utiliser un fichier * vshost.config » - qui va seulement être présent si vous exécutez votre programme de Utilisez plutôt 'MyApp.exe.config' !! –
@marc_s: Bonjour, j'ai mis à jour mon code, mais le nombre de points de terminaison lus est toujours 0. –
oui, je peux le voir - avec mon code Essayez, n'utilisez pas votre 'ServiceModelSectionGroup.GetSectionGroup (config);' et les lignes suivantes, mais utilisez plutôt mon code ('ConfigurationManager.GetSection (....)') - fonctionne dans mon cas! –