RestSharpを使用してAPIを消費し、返されたコンテンツをデシリアライズしています。これは私のオブジェクトのプロパティのうちの1つを除くすべてのために正常に動作している:それは私のC#のオブジェクトのnullRestSharpは、1つのプロパティをnullとしてデシリアライズします。
"envId":":AU1:m:w:p:7:^W160216110747138.nev"
。私は値のコロンがうまくいきませんが、私は確信していません。
私がテストしたところ、プロパティを正常に解析した同じオブジェクトにJSON.NETデシリアライズを実装しました。私はその後、私のC#クラスはうまくいくと仮定していますが、それは失敗しているデシリアライザです。
以下は完全な休憩方法です。
private static T HttpGet<T>(string url) where T : new()
{
var client = new RestClient(BaseApiUrl);
client.Timeout = 1000 * 15;
client.ClearHandlers();
client.AddHandler("application/json", new JsonDeserializer());
var request = new RestRequest(url, Method.GET);
request.AddHeader("Authorization", "Bearer " + App.Current.Properties["AccessToken"]);
// Does not parse EnvID property
IRestResponse<T> returnObject = client.Execute<T>(request);
// Testing JSON.NET deserialization - does parse EnvID property
var content = returnObject.Content;
var test = JsonConvert.DeserializeObject<T>(content);
//
return returnObject.Data;
}
実装は、ここでは以下
string url = //url string here
StorageObject results = HttpGet<StorageObject>(url);
である私があまりにもデシリアライズ午前クラス(私は他の人のすべてと全く問題がないよ、プロパティのほとんどを残してきた)
ですpublic class StorageObject
{
public StandardAttribute StandardAttributes { get; set; }
public List<CustomAttribute> CustomAttributes { get; set; }
public StorageObject() {
CustomAttributes = new List<CustomAttribute>();
}
}
public class StandardAttribute
{
public string EnvID { get; set; }
public string ID { get; set; }
}
最後にRest Restを使用して残りの呼び出しを実行しますが、これを回避するためにレスポンスのコンテンツをJSON.NETでデシリアライズすることを検討しています。 RestSharpの最新バージョンをインストールするときにJSON.NETの使用に関する警告が表示されましたが、どのようなリスクがあるのか分かりません。