2015-08-12 4 views
0

У меня возникла проблема де-сериализации XML-документа.Ошибка десериализации XML-документа 1,2

<rules version="61"> 
    <emie> 
     <domain exclude="false">facebook.com</domain> 
     <domain exclude="false">google.com</domain> 
     <domain exclude="false">bbc.co.uk</domain> 
    </emie> 
    <docMode> 
     <domain docMode="7">outlook.com</domain> 
     <domain docMode="7">yahoo.com</domain> 
    </docMode> 
</rules> 

Я скопировать и вставить в визуальной студии - с помощью Paste XML как класс и создал следующий класс

/// <remarks/> 
    [System.SerializableAttribute()] 
    [System.ComponentModel.DesignerCategoryAttribute("code")] 
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)] 
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)] 
    public partial class rules 
    { 

     private rulesDomain[] emieField; 

     private rulesDomain1[] docModeField; 

     private byte versionField; 

     /// <remarks/> 
     [System.Xml.Serialization.XmlArrayItemAttribute("domain", IsNullable = false)] 
     public rulesDomain[] emie 
     { 
      get 
      { 
       return this.emieField; 
      } 
      set 
      { 
       this.emieField = value; 
      } 
     } 

     /// <remarks/> 
     [System.Xml.Serialization.XmlArrayItemAttribute("domain", IsNullable = false)] 
     public rulesDomain1[] docMode 
     { 
      get 
      { 
       return this.docModeField; 
      } 
      set 
      { 
       this.docModeField = value; 
      } 
     } 

     /// <remarks/> 
     [System.Xml.Serialization.XmlAttributeAttribute()] 
     public byte version 
     { 
      get 
      { 
       return this.versionField; 
      } 
      set 
      { 
       this.versionField = value; 
      } 
     } 
    } 

    /// <remarks/> 
    [System.SerializableAttribute()] 
    [System.ComponentModel.DesignerCategoryAttribute("code")] 
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)] 
    public partial class rulesDomain 
    { 

     private bool excludeField; 

     private string valueField; 

     /// <remarks/> 
     [System.Xml.Serialization.XmlAttributeAttribute()] 
     public bool exclude 
     { 
      get 
      { 
       return this.excludeField; 
      } 
      set 
      { 
       this.excludeField = value; 
      } 
     } 

     /// <remarks/> 
     [System.Xml.Serialization.XmlTextAttribute()] 
     public string Value 
     { 
      get 
      { 
       return this.valueField; 
      } 
      set 
      { 
       this.valueField = value; 
      } 
     } 
    } 

    /// <remarks/> 
    [System.SerializableAttribute()] 
    [System.ComponentModel.DesignerCategoryAttribute("code")] 
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)] 
    public partial class rulesDomain1 
    { 

     private string docModeField; 

     private string valueField; 

     /// <remarks/> 
     [System.Xml.Serialization.XmlAttributeAttribute()] 
     public string docMode 
     { 
      get 
      { 
       return this.docModeField; 
      } 
      set 
      { 
       this.docModeField = value; 
      } 
     } 

     /// <remarks/> 
     [System.Xml.Serialization.XmlTextAttribute()] 
     public string Value 
     { 
      get 
      { 
       return this.valueField; 
      } 
      set 
      { 
       this.valueField = value; 
      } 
     } 
    } 

Затем я запускаю следующий код deserialise

XmlSerializer mySerializer = new XmlSerializer(typeof(XmlSerializer)); 
      Classes.rules r; 

      using (StreamReader reader = new StreamReader(@"file.xml")) 
      { 
       r = (Classes.rules)mySerializer.Deserialize(reader); 
      } 

Это ошибки на линии r = ... {"не ожидалось."}

Я довольно уверен ошибка лежит в классе и объявлениях наверху, но я не смог изменить его, чтобы он работал, может ли кто-нибудь помочь?

ответ

0

Изменить

XmlSerializer mySerializer = new XmlSerializer(typeof(XmlSerializer)); 

в

XmlSerializer mySerializer = new XmlSerializer(typeof(Classes.rules)); 

Его параметр тип объекта, который этот XmlSerializer может сериализовать.

+1

Дох - я полностью пропустил это. Это исправило это, спасибо за очень быстрый ответ. –

Смежные вопросы