经过今天一上午的修改,已经有个基础的框架了,其它功能只能是在实际使用中发现一个修改一个了。
以下是生成的结果示例:
相比昨天,几个Model都有修改,这里就不一一贴代码了,放个代码包上来,有需要的自己去查看。
整个代码的核心:生成序列化字符串,微软支持的并不好,不能缩进。
1 static string GetSerializationString(string formatter, Type inputType, object input) 2 { 3 try 4 { 5 var serializerSetting = new System.Runtime.Serialization.Json.DataContractJsonSerializerSettings() 6 { 7 8 }; 9 10 var serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(inputType, 11 serializerSetting); 12 13 using (var memStream = new System.IO.MemoryStream()) 14 { 15 using (var xmlWriter = new System.Xml.XmlTextWriter(memStream, System.Text.Encoding.UTF8)) 16 { 17 if (formatter == "XML") 18 { 19 serializer.WriteObject(xmlWriter, input); 20 21 xmlWriter.Flush(); 22 } 23 else if (formatter == "JSON") 24 { 25 serializer.WriteObject(memStream, input); 26 } 27 28 memStream.Seek(0, System.IO.SeekOrigin.Begin); 29 30 byte[] byteArray = new byte[memStream.Length]; 31 var count = 0; 32 while (count < memStream.Length) 33 { 34 byteArray[count++] = Convert.ToByte(memStream.ReadByte()); 35 } 36 37 return System.Text.Encoding.UTF8.GetString(byteArray); 38 } 39 } 40 } 41 catch (Exception ex) 42 { 43 return String.Format( 44 System.Globalization.CultureInfo.CurrentCulture, 45 "对象序列化为{0}时出错,错误为{1}", 46 formatter, 47 ex.Message); 48 } 49 }
原文:http://www.cnblogs.com/smlheart/p/3532480.html