WebServiceHost BaseAddresses
Для следующего класса:
public class MyClass
{
private WebServiceHost m_WebServiceHost;
}
Мне нужно отследить URI, с которым он был инициализирован. Я реализовал этот метод:
public void MyTrace()
{
Trace.TraceInformation("URI {0}",m_WebServiceHost.BaseAddresses);
}
Но я получаю:
URI System.Collections.ObjectModel.ReadOnlyCollection`1[System.Uri]
Что случилось?
1 ответ
Решение
Что ж, WebServiceHost.BaseAddresses
это коллекция, а не один объект. Так что использование.ToString() просто вернет имя класса, а не значение. Вам просто нужно сначала каким-то образом перечислить коллекцию, например, foreach поможет. Каждый базовый адрес является Uri
так что мы можем использовать AbsoluteUri
свойство для получения строкового представления:
public void MyTrace()
{
string addresses = string.Empty;
foreach (var address in m_WebServiceHost.BaseAddresses)
addresses += address.AbsoluteUri;
Trace.TraceInformation("URI {0}", addresses);
}