我想得到Binary soap xml 三种序列化后 序列化成二进制格式和xml格式的输出结果(不是得到原对象) 怎么得到? 谢谢

解决方案 »

  1.   

    恩 如果用代码输出呢  那个BinaryWriter 怎么用  可以给个例子么 谢谢 
      

  2.   

    [Serializable]
        public class SumOf
        {
            public SumOf()
            {
            }        public DecimalList Members = new DecimalList();        public decimal Sum,Avg;        public void Calculate()
            {
                this.Sum = 0;
                foreach (decimal m in Members)
                {
                    Sum += m;
                }
                this.Avg = Sum / Members.Count;        }    }
        [Serializable]
        public class DecimalList : List<decimal>
        {
        }
    SumOf sObj;
            private void button1_Click(object sender, EventArgs e)
            {
                // create a file stream to write the file
                FileStream fileStream = new FileStream("DoSum.bin", FileMode.Create);
                // use the CLR binary formatter
                BinaryFormatter binaryFormatter = new BinaryFormatter();
                // serialize to disk
                binaryFormatter.Serialize(fileStream, sObj);
                fileStream.Close();        }
            private SumOf BuildSumObj()
            {
                SumOf sObj = new SumOf();
                for (int i = 0; i < this.numericUpDown1.Value; i++)
                {
                    sObj.Members.Add(i);
                }
                sObj.Calculate();
                return sObj;
            }        private void button2_Click(object sender, EventArgs e)
            {
                // create a file stream to write the file
                FileStream fileStream = new FileStream("DoSum_Soap.xml", FileMode.Create);
                // use the CLR binary formatter
                SoapFormatter formatter = new SoapFormatter();
                // serialize to disk
                formatter.Serialize(fileStream, sObj);
                fileStream.Close();        }        private void button3_Click(object sender, EventArgs e)
            {
                sObj = this.BuildSumObj();
                this.toolStripStatusLabel1.Text =
                    string.Format("数量:{0},合计:{1},平均值:{2}", sObj.Members.Count, sObj.Sum, sObj.Avg);        }        private void button4_Click(object sender, EventArgs e)
            {
                // create a file stream to write the file
                FileStream fileStream = new FileStream("DoSum.xml", FileMode.Create);
                // use the CLR binary formatter
                System.Xml.Serialization.XmlSerializer
                    formatter = new XmlSerializer(typeof(SumOf));
                // serialize to disk
                formatter.Serialize(fileStream, sObj);
                fileStream.Close();
            }
      

  3.   

    谢谢啊。 还有一个问题是
     public static string SerializeObject(Person obj)
            {
            
                XmlSerializer ser = new XmlSerializer(typeof(Person), new Type[] {obj.GetType() });
                System.IO.MemoryStream mem = new MemoryStream();
                XmlTextWriter writer = new XmlTextWriter(mem, Encoding.Default);
                ser.Serialize(writer, obj);
                writer.Close();
                return Encoding.Default.GetString(mem.ToArray());
            }这段代码 什么意思  二进制的也可以这样弄么?