ここで投稿を読んで一日を過ごした後、私はまだこれを機能させることができないので、うまくいけば、これはここの誰かにとって理にかなっています.
Web サービスはこの単純な JSON を返します
{"d":{"__type":"TestWebServices.Person","Name":"Bob","FavoriteColor":"Green","ID":0}}
次に、C#コードを使用して逆シリアル化しています
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(Person));
Person someone = (Person)jsonSerializer.ReadObject(responseStream);
このモデルを使用すると、誰かが作成されますが、すべてのプロパティが null です
[DataContract]
public class Person {
[DataMember]
public string Name { get; set; }
[DataMember]
public string FavoriteColor { get; set; }
[DataMember]
public int ID { get; set; }
}
私はより文字通りになり、このモデルを使用しました
[DataContract]
public class Person {
[DataMember]
public PersonItem d { get; set; }
}
[DataContract]
public class PersonItem {
[DataMember]
public string __Type { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public string FavoriteColor { get; set; }
[DataMember]
public int ID { get; set; }
}
そして、どこから始めればいいのかわからないこのエラーが発生しました
要素「:d」には、名前「:GEMiniWebServices.Person」にマップされるタイプのデータが含まれています。デシリアライザーは、この名前にマップされる型を認識しません。DataContractResolver の使用を検討するか、'TestWebServices.Person' に対応する型を既知の型のリストに追加します。たとえば、KnownTypeAttribute 属性を使用するか、DataContractSerializer に渡される既知の型のリストに追加します。
何かご意見は?ありがとう