2012-04-12 4 views
0

私はグリッドビューを持ち、それをRESTベースのWebサービスからのデータ呼び出しにバインドします。 RESTサービスはJSON形式で提供していますので、どのようにデシリアライズしてグリッドに使用できますか?C#winform:アプリケーションで使用するRESTサービスからのJSONデータのシリアル化/逆シリアル化

型のオブジェクトを逆シリアル化エラーが発生しましたSystem.Collections.Generic.ICollection`1 [[:ここ

は、私が持っているコードのほとんどは、私は、エラーの下に取得しています、

public ICollection<Employee> GetEmployees() 
    { 
     var request = HttpWebRequest.Create(GetEndPointAddress("GetEmployeeService")); 
     var response = request.GetResponse(); 
     var stream = response.GetResponseStream(); 
     var serializer = new DataContractSerializer(typeof(ICollection<Employee>)); 
     var employees = serializer.ReadObject(stream) as ICollection<Employee>; 
     response.Close(); 
     return employees; 
    } 

public Uri GetServiceBaseAddress 
    { 
     get 
     { 
      return new Uri("http://localhost/Employeeservices/api"); 

     } 
    } 

private Uri GetEndPointAddress(string relativeAddress) 
    { 
     return new Uri(GetServiceBaseAddress.ToString() + "/" + relativeAddress); 
    } 

ですEmployeeApp.Models.Employee、Version = 1.0.0.0、Culture =ニュートラル、PublicKeyToken = null]]。ルートレベルのデータは無効です。行

さらに、これらのデータを変更すると、データをサービスに戻すことはできますか?

答えて

0

問題は、XMLシリアライザであるDataContractSerializerを使用していることです。 XMLシリアライザを使用することはできません。また、JSONデータは2つの全く異なるデータ形式であるため、JSONデータを逆シリアル化することはできません。

まず、DataContractJsonSerializerを使用するかどうかを検討してください。 DCJSには要件、制約、および用語集が付属しているため、使い慣れていないか、使い慣れていないか、習熟していない、あるいは過度のものです。これがオプションかどうかを調べるには、the JSON API referencestand-alone JSON serializationのサンプルをチェックしてください。

私は、Json .NETフレームワークを使用することをお勧めします。あなたができることを知るには、http://json.codeplex.com/を参照してください。おそらく、.NETとJSONを使い始めるのが最も簡単な方法です。

関連する問題