У меня есть app.config файл, в виде:Как узнать значение атрибута, определенного в 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>
Я хочу прочитать значение в атрибуте «адрес» узла конечной точки, который имеет название = «XXX». Пожалуйста, покажите мне, как это сделать!
(Продолжить belowing disscussing с marc_s Извините, поместить текст здесь, так как комментарии не позволяют кодов форматирования.) @marc_s: Я использую следующие коды, чтобы прочитать выше файл, но он показывает, что clientSection.Endpoints имеет 0 членов (граф = 0). Пожалуйста помоги!
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();
}
}
}
вы не должны использовать файл * vshost.config»- это только собирается присутствовать, если вы запустите программу из в Visual Studio. Вместо этого используйте 'MyApp.exe.config'! –
@marc_s: Привет, я обновил свой код. Хотя число прочитанных конечных точек все равно равно нулю. –
да, я вижу, что - с моим кодом это Однако не используйте свою 'ServiceModelSectionGroup.GetSectionGroup (config);' и следующие строки, но вместо этого используйте мой код ('ConfigurationManager.GetSection (....)') - работает в моем случае! –