I having a bit of trouble find out what cause this problem and how to resolve it.
After google for others who had the same error, It still did work. So I hope someone can help or lead me in the right direction.
I'm trying to deserialize a xml from a web service to an object.
The xml:
<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">BR</UserStatus></Result>
I then pasted the xml as classes
UserStatus.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Xml.Serialization;
namespace project.ExternalWebServices
{
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
//[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
[XmlRoot("Result")]
public partial class Result
{
private ResultUserStatus userStatusField;
/// <remarks/>
public ResultUserStatus UserStatus
{
get
{
return this.userStatusField;
}
set
{
this.userStatusField = value;
}
}
}
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class ResultUserStatus
{
private byte statusField;
private ulong statusFromField;
private byte clientTypeField;
private string logOnServerField;
private string sIPServerField;
private string deviceField;
private byte deviceStatusField;
private ulong deviceStatusFromField;
private ulong serverTimeField;
private string isLoggedOnField;
private string isAgentField;
private byte callCountField;
private byte answeredCountField;
private string interactionsField;
private string messageField;
private string sessionIDField;
private byte diversionStatusField;
private string diversionDestinationField;
private byte oldMessageCountField;
private byte newMessageCountField;
private string valueField;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public byte Status
{
get
{
return this.statusField;
}
set
{
this.statusField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public ulong StatusFrom
{
get
{
return this.statusFromField;
}
set
{
this.statusFromField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public byte ClientType
{
get
{
return this.clientTypeField;
}
set
{
this.clientTypeField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string LogOnServer
{
get
{
return this.logOnServerField;
}
set
{
this.logOnServerField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string SIPServer
{
get
{
return this.sIPServerField;
}
set
{
this.sIPServerField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Device
{
get
{
return this.deviceField;
}
set
{
this.deviceField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public byte DeviceStatus
{
get
{
return this.deviceStatusField;
}
set
{
this.deviceStatusField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public ulong DeviceStatusFrom
{
get
{
return this.deviceStatusFromField;
}
set
{
this.deviceStatusFromField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public ulong ServerTime
{
get
{
return this.serverTimeField;
}
set
{
this.serverTimeField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string IsLoggedOn
{
get
{
return this.isLoggedOnField;
}
set
{
this.isLoggedOnField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string IsAgent
{
get
{
return this.isAgentField;
}
set
{
this.isAgentField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public byte CallCount
{
get
{
return this.callCountField;
}
set
{
this.callCountField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public byte AnsweredCount
{
get
{
return this.answeredCountField;
}
set
{
this.answeredCountField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Interactions
{
get
{
return this.interactionsField;
}
set
{
this.interactionsField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Message
{
get
{
return this.messageField;
}
set
{
this.messageField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string SessionID
{
get
{
return this.sessionIDField;
}
set
{
this.sessionIDField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public byte DiversionStatus
{
get
{
return this.diversionStatusField;
}
set
{
this.diversionStatusField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string DiversionDestination
{
get
{
return this.diversionDestinationField;
}
set
{
this.diversionDestinationField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public byte OldMessageCount
{
get
{
return this.oldMessageCountField;
}
set
{
this.oldMessageCountField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public byte NewMessageCount
{
get
{
return this.newMessageCountField;
}
set
{
this.newMessageCountField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlTextAttribute()]
public string Value
{
get
{
return this.valueField;
}
set
{
this.valueField = value;
}
}
}
}
The method that calls the web service:
public ResultUserStatus UserStatus(string userName)
{
string req = "req=userStatus";
string user = "user=" + userName;
//UserStatusResult 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);
var rootAttribute = new XmlRootAttribute();
rootAttribute.IsNullable = true;
var serialize = new XmlSerializer(typeof (ResultUserStatus), rootAttribute);
object res;
using (TextReader read = new StringReader(response))
{
res = serialize.Deserialize(read);
}
return (ResultUserStatus)res;
}
catch (Exception ex)
{
throw ex;
}
}
}
The exception breaks here on this line res = serialize.Deserialize(read);
with the error:
<Result xmlns=''> was not expected.
Does anyone have ideas of what this could be?
No comments:
Post a Comment