瀏覽代碼

Updated ApiInteraction.Metro to use json.net

LukePulverenti Luke Pulverenti luke pulverenti 12 年之前
父節點
當前提交
94c8332e26

+ 17 - 8
MediaBrowser.ApiInteraction.Metro/DataSerializer.cs

@@ -1,7 +1,7 @@
 using System;
 using System.IO;
+using Newtonsoft.Json;
 using ProtoBuf;
-using ServiceStack.Text;
 
 namespace MediaBrowser.ApiInteraction
 {
@@ -15,10 +15,16 @@ namespace MediaBrowser.ApiInteraction
             }
             if (format == ApiInteraction.SerializationFormats.Jsv)
             {
-                return TypeSerializer.DeserializeFromStream<T>(stream);
+                throw new NotImplementedException();
             }
 
-            return JsonSerializer.DeserializeFromStream<T>(stream);
+            using (StreamReader streamReader = new StreamReader(stream))
+            {
+                using (JsonReader jsonReader = new JsonTextReader(streamReader))
+                {
+                    return JsonSerializer.Create(new JsonSerializerSettings()).Deserialize<T>(jsonReader);
+                }
+            }
         }
 
         public static object DeserializeFromStream(Stream stream, SerializationFormats format, Type type)
@@ -29,17 +35,20 @@ namespace MediaBrowser.ApiInteraction
             }
             if (format == ApiInteraction.SerializationFormats.Jsv)
             {
-                return TypeSerializer.DeserializeFromStream(type, stream);
+                throw new NotImplementedException();
             }
 
-            return JsonSerializer.DeserializeFromStream(type, stream);
+            using (StreamReader streamReader = new StreamReader(stream))
+            {
+                using (JsonReader jsonReader = new JsonTextReader(streamReader))
+                {
+                    return JsonSerializer.Create(new JsonSerializerSettings()).Deserialize(jsonReader, type);
+                }
+            }
         }
 
         public static void Configure()
         {
-            JsConfig.DateHandler = ServiceStack.Text.JsonDateHandler.ISO8601;
-            JsConfig.ExcludeTypeInfo = true;
-            JsConfig.IncludeNullValues = false;
         }
 
         public static bool CanDeSerializeJsv

+ 3 - 3
MediaBrowser.ApiInteraction.Metro/MediaBrowser.ApiInteraction.Metro.csproj

@@ -49,12 +49,12 @@
     <Compile Include="Properties\AssemblyInfo.cs" />
   </ItemGroup>
   <ItemGroup>
+    <Reference Include="Newtonsoft.Json">
+      <HintPath>..\Json.Net\Portable\Newtonsoft.Json.dll</HintPath>
+    </Reference>
     <Reference Include="protobuf-net">
       <HintPath>..\protobuf-net\Full\portable\protobuf-net.dll</HintPath>
     </Reference>
-    <Reference Include="ServiceStack.Text.WP">
-      <HintPath>..\packages\ServiceStack.Text.3.9.5\lib\sl4-windowsphone71\ServiceStack.Text.WP.dll</HintPath>
-    </Reference>
   </ItemGroup>
   <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it.