0
我想序列化.net對象包含另一個數據約定對象作爲參數。代碼如下....NET JSON序列化:如何將DataContract作爲另一個DataContract的成員
[DataContract]
public class JsonObject2
{
[DataMember(Name = "field1")]
string field1 { get; set; }
[DataMember(Name = "field2")]
string field2 { get; set; }
[DataMember(Name = "field3")]
object[][] test = { new object[]{"key1", "value1"}, new object[]{"key2", "value2"}, new object[]{"key3", "value3"} };
}
[DataContract]
public class JsonObject3
{
[DataMember(Name = "field1")]
public string field1 { get; set; }
[DataMember(Name = "field2")]
public object field2 { get; set; }
}
DataContractJsonSerializer dcjs2 = new DataContractJsonSerializer(typeof(JsonObject3));
JsonObject3 obj3 = new JsonObject3();
obj3.field1 = "hello";
obj3.field2 = new JsonObject2();
dcjs2.WriteObject(s, obj3);
s.Position = 0;
MessageBox.Show(new StreamReader(s).ReadToEnd());
做好以上,導致以下異常...
「{」 類型 'JSONParser.Form1 + JsonObject2' 數據合同名稱「Form1.JsonObject2 :http://schemas.datacontract.org/2004/07/JSONParser'不是預期的。將任何未知的靜態類型添加到已知類型列表中 - 例如,通過使用KnownTypeAttribute屬性或將它們添加到傳遞給DataContractSerializer的已知類型列表中。「}」
我無法弄清楚如何執行該例外中的任何建議。
- 如何添加到KnownTypes列表中?
- 你如何使用KnownTypeAttribute?