1

对于以下课程:

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]

怎么了?

4

1 回答 1

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);
}
于 2014-05-14T08:54:32.467 回答