小编use*_*689的帖子

DataContract List <>包含对象的序列化

在开发一个用于理解序列化的测试用例的同时,我遇到了一个看似直截了当的问题,但我无法弄明白.我希望能够将多个对象添加到列表<>然后序列化该列表(在这种情况下,我正在使用DataContractJsonSerializer).创建对象(node1和node2)后,我想将它们添加到List <>(cn)并序列化它.但是,在添加node1和node2时,我得到一个无效的参数错误("无法从'JSON_test.Aspirate'转换为'JSON_test.CompositeNode').我相信这是让阵列知道基类型的问题,但我不知道我不知道该怎么做,或者实际上这是问题(对所有这些来说还是很新的).

谢谢.

namespace JSON_test
{
    class Program
    {
        static void Main(string[] args)
        {
            Aspirate node1 = new Aspirate(25,40);
            Dispense node2 = new Dispense(32,50);
            ObjectToSerialize cn = new ObjectToSerialize();
            cn.CompositeNode.Add (node1);
            cn.CompositeNode.Add (node2);

            MemoryStream stream1 = new MemoryStream();
            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(ObjectToSerialize));
            ser.WriteObject(stream1, cn.CompositeNode);
            stream1.Position = 0;
            StreamReader sr = new StreamReader(stream1);
            Console.WriteLine(sr.ReadToEnd());
            Console.ReadLine();
        }
    }

    [DataContract]
    public class ObjectToSerialize
    {
        private List<CompositeNode> compNode;
        [DataMember]
        public List<CompositeNode> CompositeNode
        {
            get {return this.CompositeNode;}
            set { this.compNode = value; }
        } …
Run Code Online (Sandbox Code Playgroud)

c# serialization

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×1

serialization ×1