如果你和我一樣,都試圖在一個跨平臺的代碼庫使用DataContractJsonSerializer,很容易足以包裹在DataContractJsonSerializer的JSON.NET API(又名Newtonsoft.Json):
using System;
using System.IO;
using System.Reflection;
using Newtonsoft.Json;
namespace System.Runtime.Serialization.Json
{
public class DataContractJsonSerializer
{
private Type type;
private JsonSerializer js;
public DataContractJsonSerializer (Type t)
{
this.type = t;
this.js = new JsonSerializer();
}
public object ReadObject(Stream stream)
{
StreamReader reader = new StreamReader(stream);
return js.Deserialize(reader, type);
}
public void WriteObject(Stream stream, object o)
{
StreamWriter writer = new StreamWriter(stream);
js.Serialize(writer, o);
writer.Flush();
}
}
}
當然,這引出了爲什麼不切換到在任何地方使用JSON.NET API的問題......我對該API的個人體驗是,它比使用DCJS(至少在Windows Phone的非正式測試中)要慢。
希望有幫助!
嗨米格爾,你確定嗎?我看到這個問題http://stackoverflow.com/questions/3516471/javascriptserializer-and-monodevelop 我也讀過這本書,但Marcus終於使用了DataContractJsonSerializer – NewComer 2011-02-09 16:32:00