生成自己的Webapi帮助文档(二)

经过今天一上午的修改,已经有个基础的框架了,其它功能只能是在实际使用中发现一个修改一个了。

以下是生成的结果示例:

QQ图片20140124145620

QQ图片20140124145711

相比昨天,几个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         }
原文地址:https://www.cnblogs.com/smlheart/p/3532480.html