Updated metro api interaction

This commit is contained in:
LukePulverenti Luke Pulverenti luke pulverenti 2012-09-06 10:05:35 -04:00
parent 99a679d328
commit 908695d88a
2 changed files with 54 additions and 3 deletions

View File

@ -0,0 +1,53 @@
using System;
using System.IO;
using ProtoBuf;
using ServiceStack.Text;
namespace MediaBrowser.ApiInteraction
{
public static class DataSerializer
{
public static T DeserializeFromStream<T>(Stream stream, SerializationFormats format)
{
if (format == ApiInteraction.SerializationFormats.Protobuf)
{
return Serializer.Deserialize<T>(stream);
}
if (format == ApiInteraction.SerializationFormats.Jsv)
{
return TypeSerializer.DeserializeFromStream<T>(stream);
}
return JsonSerializer.DeserializeFromStream<T>(stream);
}
public static object DeserializeFromStream(Stream stream, SerializationFormats format, Type type)
{
if (format == ApiInteraction.SerializationFormats.Protobuf)
{
throw new NotImplementedException();
}
if (format == ApiInteraction.SerializationFormats.Jsv)
{
return TypeSerializer.DeserializeFromStream(type, stream);
}
return JsonSerializer.DeserializeFromStream(type, stream);
}
public static void Configure()
{
JsConfig.DateHandler = ServiceStack.Text.JsonDateHandler.ISO8601;
JsConfig.ExcludeTypeInfo = true;
JsConfig.IncludeNullValues = false;
}
public static bool CanDeSerializeJsv
{
get
{
return false;
}
}
}
}

View File

@ -42,12 +42,10 @@
<Compile Include="..\MediaBrowser.ApiInteraction\ApiClient.cs"> <Compile Include="..\MediaBrowser.ApiInteraction\ApiClient.cs">
<Link>ApiClient.cs</Link> <Link>ApiClient.cs</Link>
</Compile> </Compile>
<Compile Include="..\MediaBrowser.ApiInteraction\DataSerializer.cs">
<Link>DataSerializer.cs</Link>
</Compile>
<Compile Include="..\MediaBrowser.ApiInteraction\SerializationFormats.cs"> <Compile Include="..\MediaBrowser.ApiInteraction\SerializationFormats.cs">
<Link>SerializationFormats.cs</Link> <Link>SerializationFormats.cs</Link>
</Compile> </Compile>
<Compile Include="DataSerializer.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>