インターネットから取得した JSON ファイルがあります。
string JSON = reader.ReadToEnd();
それは完全に機能しますが、問題は次のとおりです。
NewsList = JsonConvert.DeserializeObject<News>(JSON) as News;
これは WP8 プロジェクトでは完全に機能しますが、WP7 ではなぜか失敗します。ここに私のニュースクラスがあります:
class News
{
[JsonProperty("jsonrpc")]
public string Jsonrpc { get; set; }
[JsonProperty("id")]
public string Id { get; set; }
[JsonProperty("result")]
public Result Result { get; set; }
}
public class Result
{
private List<Article> articles = new List<Article>();
[JsonProperty("articles")]
public List<Article> Articles { get { return articles; } }
}
public class Article
{
[JsonProperty("text")]
public string Text { get; set; }
[JsonProperty("id")]
public int Id { get; set; }
[JsonProperty("date")]
public long Date { get; set; }
[JsonProperty("title")]
public string Title { get; set; }
[JsonProperty("author")]
public string Author { get; set; }
[JsonProperty("imageURL")]
public string ImageURL { get; set; }
}
エラーは次のとおりです。
メソッドへのアクセスに失敗しました: WP7RTURelease2.HomePage+News..ctor()
System.MethodAccessException は処理されませんでしたメッセージ = メソッドにアクセスしようとして失敗しました: WP7RTURelease2.HomePage+News..ctor() StackTrace: System.Reflection.RuntimeConstructorInfo.InternalInvoke(Object obj、BindingFlags invokeAttr、Binder バインダー、Object[] パラメーター、CultureInfo でCulture, StackCrawlMark& stackMark) の System.Reflection.ConstructorInfo.Invoke(Object[] パラメータ) の Newtonsoft.Json.Utilities.LateBoundReflectionDelegateFactory.<>c_ DisplayClass6`1.b_5() で Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateNewObject(JsonReader リーダー、JsonObjectContract objectContract、JsonProperty containerMember、JsonProperty containerProperty、String id、Boolean& createdFromNonDefaultConstructor) で Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader リーダー、タイプ objectType、JsonContract契約、JsonProperty メンバ、JsonContainerContract コンテナ契約、JsonProperty コンテナメンバ、オブジェクトの既存の値) Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader リーダー、Type objectType、JsonContract コントラクト、JsonProperty メンバ、JsonContainerContract コンテナ契約、JsonProperty コンテナメンバ、オブジェクトの既存の値) Newtonsoft.Json で.Serialization.JsonSerializerInternalReader.Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader リーダー、Type objectType) で Deserialize (JsonReader リーダー、タイプ objectType、ブール型 checkAdditionalContent) Newtonsoft.Json.JsonConvert.DeserializeObject[T](文字列値、JsonSerializerSettings 設定) の文字列値、Type 型、JsonSerializerSettings 設定) Newtonsoft.Json.JsonConvert.DeserializeObject[T](文字列値) WP7RTURelease2.HomePage.HandleResponseNews(IAsyncResult)結果) System.Net.Browser.ClientHttpWebRequest.<>c_ でNewtonsoft.Json.JsonConvert.DeserializeObject[T](文字列値) で Newtonsoft.Json.JsonConvert.DeserializeObject(文字列値、型の種類、JsonSerializerSettings 設定) 、JsonSerializerSettings 設定) で Newtonsoft.Json.JsonConvert.DeserializeObject[T](文字列値) で WP7RTURelease2.HomePage.HandleResponseNews(IAsyncResult 結果) で System.Net.Browser.ClientHttpWebRequest.<>c_Newtonsoft.Json.JsonConvert.DeserializeObject[T](文字列値) で Newtonsoft.Json.JsonConvert.DeserializeObject(文字列値、型の種類、JsonSerializerSettings 設定) 、JsonSerializerSettings 設定) で Newtonsoft.Json.JsonConvert.DeserializeObject[T](文字列値) で WP7RTURelease2.HomePage.HandleResponseNews(IAsyncResult 結果) で System.Net.Browser.ClientHttpWebRequest.<>c_JsonSerializerSettings 設定) で Newtonsoft.Json.JsonConvert.DeserializeObject[T](文字列値) で WP7RTURelease2.HomePage.HandleResponseNews(IAsyncResult 結果) で System.Net.Browser.ClientHttpWebRequest.<>c_JsonSerializerSettings 設定) で Newtonsoft.Json.JsonConvert.DeserializeObject[T](文字列値) で WP7RTURelease2.HomePage.HandleResponseNews(IAsyncResult 結果) で System.Net.Browser.ClientHttpWebRequest.<>c_System.Threading.ThreadPool.WorkItem.WaitCallback_Context(オブジェクトの状態) でDisplayClassa.b _8(オブジェクトの状態 2) (オブジェクト o) System.Threading.Timer.ring() で