0

インターネットから取得した 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() で

4

1 に答える 1

1

Newsクラスを公開してみてください。

于 2013-08-13T14:08:59.720 に答える