| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.IO;
 
- using System.Text;
 
- using MediaBrowser.Model.Services;
 
- namespace ServiceStack.Host
 
- {
 
-     public class ContentTypes
 
-     {
 
-         public static ContentTypes Instance = new ContentTypes();
 
-         public void SerializeToStream(IRequest req, object response, Stream responseStream)
 
-         {
 
-             var contentType = req.ResponseContentType;
 
-             var serializer = GetStreamSerializer(contentType);
 
-             serializer(response, responseStream);
 
-         }
 
-         public static Action<object, Stream> GetStreamSerializer(string contentType)
 
-         {
 
-             switch (GetRealContentType(contentType))
 
-             {
 
-                 case "application/xml":
 
-                 case "text/xml":
 
-                 case "text/xml; charset=utf-8": //"text/xml; charset=utf-8" also matches xml
 
-                     return (o, s) => ServiceStackHost.Instance.SerializeToXml(o, s);
 
-                 case "application/json":
 
-                 case "text/json":
 
-                     return (o, s) => ServiceStackHost.Instance.SerializeToJson(o, s);
 
-             }
 
-             return null;
 
-         }
 
-         public Func<Type, Stream, object> GetStreamDeserializer(string contentType)
 
-         {
 
-             switch (GetRealContentType(contentType))
 
-             {
 
-                 case "application/xml":
 
-                 case "text/xml":
 
-                 case "text/xml; charset=utf-8": //"text/xml; charset=utf-8" also matches xml
 
-                     return ServiceStackHost.Instance.DeserializeXml;
 
-                 case "application/json":
 
-                 case "text/json":
 
-                     return ServiceStackHost.Instance.DeserializeJson;
 
-             }
 
-             return null;
 
-         }
 
-         private static string GetRealContentType(string contentType)
 
-         {
 
-             return contentType == null
 
-                        ? null
 
-                        : contentType.Split(';')[0].ToLower().Trim();
 
-         }
 
-     }
 
- }
 
 
  |