I am calling a web service that returns a string, the string is an object serialized into XML. The XML returned could look like:
Expand|Select|Wrap|Line Numbers
- <object><name>Safir.Vehicles.Vehicle</name><instance>0</instance><members><member><name>Callsign</name><value></value></member><member><name>Identity</name><value>Safir.Vehicles.Enum.Identity.Friend</value></member><member><name>Transient</name></member><member><name>VehicleID</name><value></value></member></members></object>
Expand|Select|Wrap|Line Numbers
- [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
- [System.SerializableAttribute()]
- [System.Diagnostics.DebuggerStepThroughAttribute()]
- [System.ComponentModel.DesignerCategoryAttribute("code")]
- [System.Xml.Serialization.XmlRootAttribute("object", IsNullable=false)]
- public partial class ctObject {
- private string nameField;
- private object itemField;
- private ctObjectMember[] membersField;
- /// <remarks/>
- public string name {
- get {
- return this.nameField;
- }
- set {
- this.nameField = value;
- }
- }
- /// <remarks/>
- [System.Xml.Serialization.XmlElementAttribute("instance", typeof(string), DataType="integer")]
- [System.Xml.Serialization.XmlElementAttribute("instanceRef", typeof(ctReference))]
- public object Item {
- get {
- return this.itemField;
- }
- set {
- this.itemField = value;
- }
- }
- /// <remarks/>
- [System.Xml.Serialization.XmlArrayItemAttribute("member", IsNullable=false)]
- public ctObjectMember[] members {
- get {
- return this.membersField;
- }
- set {
- this.membersField = value;
- }
- }
- }
- I try to deserialize the XML string like this:
- namespace getEntity_Client
- {
- public enum douRootTypes { douObject };
- public enum douTypes { valueType, memberType, parameterType, createRoutinesType };
- public class Program
- {
- public static void Main(string[] args)
- {
- Program prgm = new Program();
- prgm.consoleApp();
- }
- public void consoleApp()
- {
- ctObject douObject = new ctObject();
- get_Entity getEntityService = new get_Entity();
- Console.WriteLine("Reading vehicle from web service...");
- //Invoke the web service call. Returns object serialized to XML
- string strXMLEntity = getEntityService.getVehicle(0);
- //The deserializing part
- XmlSerializer ctObjectSerializer = new XmlSerializer(typeof(ctObject));
- StringReader stream = null;
- XmlTextReader reader = null;
- stream = new StringReader(strXMLEntity); // read xml data
- reader = new XmlTextReader(stream); // create reader
- this.RootType = douRootTypes.douObject;
- douObject = (ctObject)ctObjectSerializer.Deserialize(reader);
- ctObject douO = douObject;
- ....
- ...
- }
- }
- }
- The program throws the error in the second line from the end --> douObject = (ctObject)ctObjectSerializer.Deserialize(reader);
Message="There is an error in XML document (1, 2)."
InnerException: { "<object xmlns=>" was not expected." }
I don't get it. In the class def. there is the serializable definition, as well as the root element definition. Why does my serializer not connect ctObject with object ?
Help much appreciated --> totally stuck right now... :-(
Thanks in advance,
Erik Näslund