Silverlight 4에서 json 데이터를 deserialize하기 위해 DataContractJsonSerializer를 사용합니다. Json 데이터 키 이름이 클래스 속성 이름과 일치하지 않습니다. 그래서 나는 DataMemberAttribute를 사용해야한다고 생각합니다. 나는 사람의 기본 클래스 모델에 DataContractAttribute를 적용하지 않았기 때문에Silverlight 4 DataContractJsonSerializer, 파생 클래스의 개인 필드
이제[DataContract]
public class Person : Model
{
[DataMember(Name = "id")]
private int _id;
public int Id
{
get { return _id; }
set { _id = value; }
}
[DataMember(Name = "name")]
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
}
직렬화 실패 : 그래서 나는 다음과 같은했다. 그것은 엄격한 요구 사항입니까? 또한 DataContractAttribute를 Model에 적용한 후에 공용 속성이 아닌 개인 필드에 DataMember 특성을 적용했기 때문에 deserialization이 다시 실패합니다. 왜 사적 구성원에게 적용 할 수 없습니까?
참고 : 서버 쪽 코드는 ASP.NET이 아닙니다. WCF는 사용되지 않습니다.
내 어셈블리에도 InternalsVisibleTo 특성을 적용해야합니까? – synergetic
물론입니다. 그 작은 보석을 잊어 버렸어. –
기본 클래스에 DataContract 특성을 적용하는 것은 어떻습니까? 그것은 전부 아니면 아무것도 아닌 것입니까? – synergetic