Пример #1
0
        public string Serialize(object value, string accept, Stream destination)
        {
            //fast path
            if (accept == "application/json" || accept == null)
            {
                Json.Serialize(value, destination, false);
                return("application/json");
            }
            if (accept == "application/json;minimal")
            {
                Json.Serialize(value, destination, true);
                return("application/json");
            }
#if !NETSTANDARD2_0
            if (accept == "application/x-protobuf")
            {
                Protobuf.Serialize(value, destination);
                return("application/x-protobuf");
            }
            if (accept == "application/xml")
            {
                Xml.Serialize(value, destination);
                return("application/xml");
            }
#endif
            if (accept.StartsWith("application/json", StringComparison.Ordinal))
            {
                Json.Serialize(value, destination, false);
                return("application/json");
            }
            //Slow path
            accept = (accept ?? "application/json").ToLowerInvariant();
            if (accept.Contains("application/json"))
            {
                Json.Serialize(value, destination, false);
                return("application/json");
            }
#if !NETSTANDARD2_0
            if (accept.Contains("application/xml"))
            {
                Xml.Serialize(value, destination);
                return("application/xml");
            }
            if (accept.Contains("application/x-protobuf"))
            {
                Protobuf.Serialize(value, destination);
                return("application/x-protobuf");
            }
#endif
            Json.Serialize(value, destination, false);
            return("application/json");
        }
Пример #2
0
 public string Serialize(object value, string accept, Stream destination)
 {
     //fast path
     if (accept == "application/json")
     {
         Json.Serialize(value, destination, false);
         return("application/json");
     }
     if (accept == "application/json;minimal")
     {
         Json.Serialize(value, destination, true);
         return("application/json");
     }
     if (accept == "application/x-protobuf")
     {
         Protobuf.Serialize(value, destination);
         return("application/x-protobuf");
     }
     if (accept == "application/xml")
     {
         Xml.Serialize(value, destination);
         return("application/xml");
     }
     //Slow path
     accept = (accept ?? "application/json").ToLowerInvariant();
     if (accept.Contains("application/xml"))
     {
         Xml.Serialize(value, destination);
         return("application/xml");
     }
     if (accept.Contains("application/x-protobuf"))
     {
         Protobuf.Serialize(value, destination);
         return("application/x-protobuf");
     }
     Json.Serialize(value, destination, false);
     return("application/json");
 }