XAML에서 사용자 지정 컨트롤을 만들고 일부 사용자 지정 속성도 추가했습니다. 이제 가능한 경우 JSON에 직렬화하려고합니다. 여기에 내가 무엇을 (기본적으로)입니다 :Silverlight에서 파생 클래스를 직렬화하는 방법
public static string Serialize(object objectToSerialize)
{
using (MemoryStream ms = new MemoryStream())
{
DataContractJsonSerializer serializer =
new DataContractJsonSerializer(objectToSerialize.GetType());
serializer.WriteObject(ms, objectToSerialize);
ms.Position = 0;
using (StreamReader reader = new StreamReader(ms))
return reader.ReadToEnd();
}
}
그러나, serializer.WriteObject(ms, objectToSerialize);
가 발생
System.Runtime.Serialization.InvalidDataContractException
:
을 표시 고려
public partial class MyCustomClass : UserControl { public Dictionary<char, int[]> ValueMap; public int Value { get; set; } }
을 그리고 직렬화 처리하는 코드에 DataContractAttribute 특성 및 을 DataMemberAttribute 특성으로 직렬화하려는 모든 구성원을 표시하십시오. 또는, 유형을 공개하고 매개 변수가에게 생성자가 있는지 확인 할 수 있습니다 -.이 필요합니다 유형은 다음 연재됩니다 의 모든 공공 회원 및 없는 속성을 "
를 이제 때 MyCustomClass
에 해당 속성을 추가하려면, 나는 물론 같은 예외 System.Windows.UIElement
대신 MyCustomClass
만이 시간을 얻을. 그래서
를, 내가해야 기존의 직렬화 방법으로 내 사용자 지정 파생 클래스를 직렬화하는 방법은 무엇입니까, 또는 그냥 사용자 정의 직렬화 메토 쓰기 ds에 MyCustomClass
?
와우, 나는 결코 IXmlSerializable이 DataContractJsonSerializer에서 작동 할 것이라고 기대하지 않았지만 실제로는 그렇지 않습니다. 내가 처음 생각한 것은 ISerializable 이었지만 Silverlight에서는 지원되지 않는 것 같습니다. –