C#无法将List <CustomObject>作为属性序列化

Pra*_*vin 5 c# list xml-serialization

嗨,我想序列化

FileStream fileStream = new FileStream("batches.xml", FileMode.Open);
XmlSerializer serializer = new XmlSerializer(typeof(List<Batche>));
List<Batche> listOfBatches = new List<Batche>();

[Serializable]
[XmlRoot("Batch")]
public class Batche
{   

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

    [XmlArray("ListOfLinks"),XmlArrayItem("Link",Type = typeof(Link))]
    public List<Link> Links
    {
        get;set;
    }
}

[Serializable]
[XmlRoot("Link")]
public class Link
{
   [XmlElement("Uri")]
   public Uri Uri
   {
       get;
       set;
   }

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

}
Run Code Online (Sandbox Code Playgroud)

获取以下错误:有一个错误反映了类型'System.Collections.Generic.List`1 [DownloadTRON.Entities.Batche]'.

自从过去4个小时以来一直在尝试这个,任何身体都可以指出我做错了什么!

关心普拉文

Rya*_*sen 5

您的代码或泛型的序列化没有问题。Uri 没有默认构造函数,无法序列化。考虑将其更改为字符串,事情就会起作用。如果您只打算使用 XmlSerializer,您可以删除 Serializable 属性,因为它没有被使用。

当我用调试器运行你的代码并看到异常时,有一个内部异常,一个内部异常,一个内部异常等等。尽可能地跟随那只兔子进入洞中总是一个好主意。