public class TestListResult<T> : List<T>
    {
        public TestListResult()
        {
            this.Successed = false;
            this.Message = "";
        }
        public bool Successed { get; set; }
        public string Message { get; set; }
    }TestListResult<abc> list = new TestListResult<abc>();
            abc a = new abc(); a.a = "aaa";
            abc b = new abc(); b.a = "bbb";
            abc c = new abc(); c.a = "ccc";
            list.Message = "Notice Message!";
            list.Successed = false;
            list.Add(a);
            list.Add(b);
            list.Add(c);            DataContractJsonSerializer serializer = new DataContractJsonSerializer(list .GetType());
            string szJson = "";
            using (MemoryStream stream = new MemoryStream())
            {
                serializer.WriteObject(stream, list );
                szJson = Encoding.UTF8.GetString(stream.ToArray());
            }
      扩展了原有List功能,增加了其他的属性,现在需要Json序列化,但是结果没有序列化出扩展的几个属性,望高手指点
上面序列化结果:[{"a":"aaa"},{"a":"bbb"},{"a":"ccc"}]
期望结果:{"Message":"dfafdas","Successed":false,[{"a":"aaa"},{"a":"bbb"},{"a":"ccc"}]}

解决方案 »

  1.   

    {"Message":"dfafdas","Successed":false,[{"a":"aaa"},{"a":"bbb"},{"a":"ccc"}]}
    作为一个js对象,如何解读?不明白
    js对象都是{name:value, name2:value}
    {array}又怎么去取得呢?
      

  2.   

    [DataContect]//这个记不清了 和下面的DataMember在一个命名空间下 自动引用一下
    public class TestListResult<T> : List<T>
      {
      public TestListResult()
      {
      this.Successed = false;
      this.Message = "";
      }  [DataMember]
      public bool Successed { get; set; }  [DataMember]
      public string Message { get; set; }
      }
      

  3.   

     如果用:DataContractAttribute类的序列化
       [DataContect(DataContract(Namespace=""))]
       [DataMember(Name=""]如果用SerializableAttribute:
         [Serializable]
         [XmlRoot(ElementName = "Pupil", Namespace = "urn:MyNamespace")]
          
          [XmlElement(ElementName=""]//这样来添加序列化信息
      

  4.   

    var data = new { Message = "dfafdas", Successed = false , List = list };
    serializer.WriteObject(stream, data);
      

  5.   

    你要用datacontract的话,应该这样。    [DataContract]
        public class TestListResult<T>
        {
            public TestListResult()
            {
                this.Successed = false;
                this.Message = "erwrerwrwer";
            }        [DataMember]
            public bool Successed { get; set; }        [DataMember]
            public string Message { get; set; }        [DataMember]
            public List<T> List { get; set; }
        }
      

  6.   

    +1如若楼主所想可以实现,那List类里的属性是否都要显示出来?