C# 如何序列化自定义对象类型的列表列表?

C# 如何序列化自定义对象类型的列表列表?,c#,xml-serialization,C#,Xml Serialization,代码如下: [XmlRoot("Foo")] class Foo { [XmlElement("name")] string name; } [XmlRoot("FooContainer")] class FooContainer { [XmlElement("container")] List<List<Foo>> lst { get; set; }

代码如下:

    [XmlRoot("Foo")]
    class Foo
    {
        [XmlElement("name")]
        string name;
    }

    [XmlRoot("FooContainer")]
    class FooContainer
    {
        [XmlElement("container")]
        List<List<Foo>> lst { get; set; }
    }

    XmlSerializer s = new XmlSerializer(typeof(FooContainer)); -->Can't pass through this.
[XmlRoot(“Foo”)]
福班
{
[XmlElement(“名称”)]
字符串名;
}
[XmlRoot(“FooContainer”)]
类FooContainer
{
[XmlElement(“容器”)]
列表lst{get;set;}
}
XmlSerializer s=新的XmlSerializer(typeof(FooContainer));-->不能通过这个。
抱怨没能隐式地投下一派胡言一派胡言

任何人都可以知道这段代码有什么问题?

Foo和FooContainer需要公开。除此之外,它对我很有效。不得不充实一下代码,但是他的作品

class Program
{
    static void Main(string[] args)
    {
        XmlSerializer s = new XmlSerializer(typeof(FooContainer));

        var str = new StringWriter();
        var fc  = new FooContainer();

        var lst = new List<Foo>() { new Foo(), new Foo(), new Foo() };

        fc.lst.Add( lst );

        s.Serialize(str, fc);
    }
}

[XmlRoot("Foo")]    
public class Foo    {        
    [XmlElement("name")]        
    public string name = String.Empty;    }    

[XmlRoot("FooContainer")]    
public class FooContainer    {

    public List<List<Foo>> _lst = new List<List<Foo>>();
    public FooContainer()
    {

    }

    [XmlArrayItemAttribute()]
    public List<List<Foo>> lst { get { return _lst; } }
}
类程序
{
静态void Main(字符串[]参数)
{
XmlSerializer s=新的XmlSerializer(typeof(FooContainer));
var str=新的StringWriter();
var fc=新的FooContainer();
var lst=new List(){new Foo(),new Foo(),new Foo()};
fc.lst.Add(lst);
s、 序列化(str,fc);
}
}
[XmlRoot(“Foo”)]
公共类Foo{
[XmlElement(“名称”)]
公共字符串名称=string.Empty;}
[XmlRoot(“FooContainer”)]
公共类食物容器{
公共列表_lst=新列表();
公共容器()
{
}
[XmlArrayItemAttribute()]
公共列表lst{get{return}
}
Foo和FooContainer需要是公共的。除此之外,它对我很有效。不得不充实一下代码,但是他的作品

class Program
{
    static void Main(string[] args)
    {
        XmlSerializer s = new XmlSerializer(typeof(FooContainer));

        var str = new StringWriter();
        var fc  = new FooContainer();

        var lst = new List<Foo>() { new Foo(), new Foo(), new Foo() };

        fc.lst.Add( lst );

        s.Serialize(str, fc);
    }
}

[XmlRoot("Foo")]    
public class Foo    {        
    [XmlElement("name")]        
    public string name = String.Empty;    }    

[XmlRoot("FooContainer")]    
public class FooContainer    {

    public List<List<Foo>> _lst = new List<List<Foo>>();
    public FooContainer()
    {

    }

    [XmlArrayItemAttribute()]
    public List<List<Foo>> lst { get { return _lst; } }
}
类程序
{
静态void Main(字符串[]参数)
{
XmlSerializer s=新的XmlSerializer(typeof(FooContainer));
var str=新的StringWriter();
var fc=新的FooContainer();
var lst=new List(){new Foo(),new Foo(),new Foo()};
fc.lst.Add(lst);
s、 序列化(str,fc);
}
}
[XmlRoot(“Foo”)]
公共类Foo{
[XmlElement(“名称”)]
公共字符串名称=string.Empty;}
[XmlRoot(“FooContainer”)]
公共类食物容器{
公共列表_lst=新列表();
公共容器()
{
}
[XmlArrayItemAttribute()]
公共列表lst{get{return}
}

我知道有人会提到公众,所以我就跳到这里:

是的,他们需要公开,但这不是唯一的问题。实际运行序列化不起作用(获取描述的错误)

它不喜欢这个列表
[XmlRoot("Foo")]
public class Foo
{
    [XmlElement("name")]
    public string name;
}

[XmlRoot("FooContainer")]
public class FooContainer
{
    [XmlElement("container")]
    public List<SerializableList<Foo>> lst { get; set; }
}

[XmlRoot("list")]
public class SerializableList<T>
{
    [XmlElement("items")]
    public List<T> lst { get; set; }
}
[XmlRoot(“Foo”)]
公开课Foo
{
[XmlElement(“名称”)]
公共字符串名称;
}
[XmlRoot(“FooContainer”)]
公共类食物容器
{
[XmlElement(“容器”)]
公共列表lst{get;set;}
}
[XmlRoot(“列表”)]
公共类序列化列表
{
[XmlElement(“项目”)]
公共列表lst{get;set;}
}

我知道有人会提到公众,所以我就跳到这里:

是的,他们需要公开,但这不是唯一的问题。实际运行序列化不起作用(获取描述的错误)

它不喜欢这个列表
[XmlRoot("Foo")]
public class Foo
{
    [XmlElement("name")]
    public string name;
}

[XmlRoot("FooContainer")]
public class FooContainer
{
    [XmlElement("container")]
    public List<SerializableList<Foo>> lst { get; set; }
}

[XmlRoot("list")]
public class SerializableList<T>
{
    [XmlElement("items")]
    public List<T> lst { get; set; }
}
[XmlRoot(“Foo”)]
公开课Foo
{
[XmlElement(“名称”)]
公共字符串名称;
}
[XmlRoot(“FooContainer”)]
公共类食物容器
{
[XmlElement(“容器”)]
公共列表lst{get;set;}
}
[XmlRoot(“列表”)]
公共类序列化列表
{
[XmlElement(“项目”)]
公共列表lst{get;set;}
}

我把它们都公开了,但仍在抱怨?如果可能,你也可以检查这个问题吗?泰:我把它们都公开了,但仍在抱怨?如果可能,你也可以检查这个问题吗泰:如果可能,你也可以检查这个问题吗泰: