将外部Web服务和XML反序列化为.NET中的类对象

本杰明·韦斯(Benjamin Vejs)

从外部Web服务生成对象时遇到了一些麻烦。

我使用httpRequest调用Web服务,例如http://./ucs-ws?requserstatus&user = testuser

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;
    }

我从外部Web服务获得的响应是

<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;

     ...
}

如果有人可以帮助我或引导我朝着正确的方向前进,那将是很好的。

詹姆士

对于提供的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; }

    ...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将XML字符串从Web服务API反序列化为C#对象

来自分类Dev

将xml反序列化为对象

来自分类Dev

将Xml反序列化为C#中的对象

来自分类Dev

将XML反序列化为类C#

来自分类Dev

将XML字符串反序列化为类

来自分类Dev

将XML反序列化为对象数组

来自分类Dev

如何将XML反序列化为对象?

来自分类Dev

将XML反序列化为对象C#

来自分类Dev

将XML反序列化为C#对象

来自分类Dev

将xml反序列化为对象会导致错误

来自分类Dev

将复杂的XML反序列化为对象

来自分类Dev

如何将XML反序列化为对象?

来自分类Dev

将xml xmpp消息反序列化为对象

来自分类Dev

将键/值xml反序列化为对象

来自分类Dev

C# 将 XML 反序列化为对象列表

来自分类Dev

如何将内部 XML 反序列化为对象?

来自分类Dev

将 XML 值反序列化为对象

来自分类Dev

将XML反序列化为C#中的列表

来自分类Dev

Xml将类的实例序列化/反序列化为“丑陋”的xml格式

来自分类Dev

如何将多个对象序列化/反序列化为单个XML文件?

来自分类Dev

如何将 xml 序列化/反序列化为 C# 对象?

来自分类Dev

将简单XML反序列化为类对象时出错

来自分类Dev

jQuery-将XML对象反序列化为类类型?

来自分类Dev

将XML反序列化为从基类C#派生的对象

来自分类Dev

jQuery-将XML对象反序列化为类类型?

来自分类Dev

将Json对象反序列化为.NET对象

来自分类Dev

将JSON对象反序列化为类

来自分类Dev

将JSON响应反序列化为特定的类对象

来自分类Dev

如何使用Jackson将Java Enums序列化和反序列化为JSON对象