2017-05-06 121 views
0

我能够将简单位信息与源代码一样绑定到Id之外,但试图解析出复杂对象时总是以null结尾。我在映射中做了什么错误?将xml反序列化为复杂对象

饲料

[XmlRoot("feed", Namespace = "http://www.w3.org/2005/Atom")] 
public class Feed 
{ 
    [XmlElement("author")] 
    Author Author { get; set; } 

    [XmlElement("entry")] 
    List<Entry> Entries { get; set; } 

    [XmlElement("id")] 
    public string Id { get; set; } 
} 

作者

[XmlType("author")] 
public class Author 
{ 
    [XmlElement("name")] 
    public string Name { get; set; } 
    [XmlElement("email")] 
    public string Email { get; set; } 
} 

进入

[XmlType("entry")] 
public class Entry 
{ 
    [XmlElement("id")] 
    public string Id { get; set; } 
    [XmlElement("published")] 
    DateTime Published { get; set; } 
    [XmlElement("updated")] 
    DateTime Updated { get; set; } 
    [XmlElement("title")] 
    public string Title { get; set; } 
} 

反序列化

 using (Stream stream = res.GetResponseStream()) 
     { 
      XmlSerializer serializer = new XmlSerializer(typeof(Feed)); 
      feed = (Feed)serializer.Deserialize(stream); 
     } 
+1

显示输入xml。 –

+2

请参阅[整合命名空间](https://msdn.microsoft.com/en-us/library/system.servicemodel.syndication(v = vs.110).aspx)。使用[SyndicationFeed类](https://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.syndicationfeed(v = vs.110).aspx)来使用RSS。 –

+0

项目正在使用.net核心,输入XML是像blogspot原子饲料 http://cellularscale.blogspot.com/feeds/posts/default – Evr

回答

1

我怀疑“feed”类定义位。

尝试下面的方法,看看它是否工作。

  1. 声明您的“作者”类和列表类public
  2. 尝试在构造函数中构造Author和List,如下面的代码所示。

    [XmlRoot("feed", Namespace = "http://www.w3.org/2005/Atom")] 
    public class Feed 
    { 
         //ADD A CONSTRUCTOR AND CREATE LIST AND AUTHOR 
         public Feed() 
         { 
         Author1 = new Author(); 
         Entries = new List<Entry>(); 
    
         } 
    
         [XmlElement("author")] 
         public Author Author1 { get; set; } 
    
         [XmlElement("entry")] 
         public List<Entry> Entries { get; set; } 
    
         [XmlElement("id")] 
         public string Id { get; set; } 
    } 
    
+0

唉!在Feed中添加公共作者和条目解决了这个问题。谢谢 – Evr