我在从外部Web服务生成对象时遇到了一些麻烦。
我使用http://./ucs-ws?requserstatus& user = testuser
等httpRequest调用Web服务WebserviceClient.cs
public string UserStatus(string userName)
{
string req = "req=userStatus";
string user = "user=" + userName;
string result;
using (WebClient proxy = new WebClient())
{
proxy.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("br:br"));
proxy.Headers.Add(HttpRequestHeader.Accept, "application/xml");
try
{
var response = proxy.DownloadString(webServiceBasePath + req + "&" + user);
result = response;
}
catch (Exception)
{
return "Web Service not available. Please contact the Administrator";
}
}
return result;
}
我从外部网络服务获得的回复是
<Result>
<UserStatus
Status="34"
StatusFrom="140729143619"
ClientType="4"
LogOnServer="NcoreConnect"
SIPServer="10.16.3.10"
Device="tel:201"
DeviceStatus="0"
DeviceStatusFrom="140729134828"
ServerTime="140731090408"
IsLoggedOn="True"
IsAgent="True"
CallCount="0"
AnsweredCount="0"
Interactions=""
Message=""
SessionID="a123a38d-d00d-47c0-af03-2b63f40fb8a6"
DiversionStatus="0"
DiversionDestination=""
OldMessageCount="0"
NewMessageCount="0">testuser
</UserStatus>
</Result>
我需要的是创建一个userStatus对象,我可以将其添加到列表中。使用来自userStatus的变量。
有人知道如果这是一个聪明的方法,所以你有一个这样的课:
UserStatus.cs
public class UserStatus
{
[XmlElement("UserStatus")]
public string UserName; // testuser
public string Status;
public string StatusFrom;
public string ClientType;
public string LogOnServer;
...
}
如果有人可以帮助我或带领我朝着正确的方向前进,那就太好了。
答案 0 :(得分:0)
对于提供的XML,以下内容应该有效
[XmlRoot("Result")]
public class UserStatusResult
{
[XmlElement]
public UserStatus Status { get; set; }
}
public class UserStatus
{
[XmlText]
public string UserName { get; set; }
[XmlAttribute]
public string Status { get; set; }
[XmlAttribute]
public string StatusFrom { get; set; }
...
}