无法在 Xamarin.Mac 中使用 DataContractJsonSerializer

Unable to use DataContractJsonSerializer in Xamarin.Mac

我在 windows 中使用以下方法将我的属性转换为 JSON,它工作得很好,但现在我正尝试在我的 Mac 上的 Xamarin 中做同样的事情但它无法识别 DataContractJsonSerializer。下面是我在 windows:

上使用的代码
public static string JsonSerializer(T t)
    {
        DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
        MemoryStream ms = new MemoryStream();
        ser.WriteObject(ms, t);
        string jsonString = Encoding.UTF8.GetString(ms.ToArray());
        ms.Close();
        //Replace Json Date String
        string p = @"\/Date\((\d+)\+\d+\)\/";
        MatchEvaluator matchEvaluator = new MatchEvaluator(ConvertJsonDateToDateString);
        Regex reg = new Regex(p);
        jsonString = reg.Replace(jsonString, matchEvaluator);
        return jsonString;
    }

任何人都可以找到解决方法,以便我可以在我的 Xamarin.Mac 项目中使用它。

我自己解决了问题。我这样使用 Json.Net:

 //Convert "yyyy-MM-dd HH:mm:ss" String as "\/Date(1319266795390+0800)\/"
        string p = @"\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}";
        MatchEvaluator matchEvaluator = new MatchEvaluator(ConvertDateStringToJsonDate);
        Regex reg = new Regex(p);
        jsonString = reg.Replace(jsonString, matchEvaluator);
        DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
        Newtonsoft.Json.JsonSerializer serializer = new JsonSerializer();
        MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
        JsonReader reader = new JsonTextReader(new StreamReader(ms));
        T obj2  = serializer.Deserialize<T>(reader);
        //T obj = (T)ser.ReadObject(ms);
        return obj2;

结果相同。