2016-01-08 31 views

回答

3

每個自定義類型都可以選擇如何將其序列化。

爲例子,紀念型與[JsonObject(MemberSerialization = MemberSerialization.OptIn)],然後你必須標記與[JsonProperty]否則什麼將被序列化的東西。所以,即使自定義類型的屬性是可序列化的類型可能會產生什麼({})連載:

public class A 
{ 
    public string Test { get; set; } = "Test"; 
    public B B { get; set; } = new B(); 
} 

[JsonObject(MemberSerialization = MemberSerialization.OptIn)] 
public class B 
{ 
    public string Foo { get; set; } = "Foo"; 
} 

然後

Console.WriteLine(JsonConvert.SerializeObject(new A())); 

會產生

{ 「測試」:」測試「,」B「:{}}」

使用這種方法,您將有問題ems根本無法序列化B。這不是很好的想法,你不覺得嗎?

+0

像這樣的B型屬性仍然會被序列化,只有它們沒有與我所要求的屬性完全相同的屬性,但它是一個很好的選擇。謝謝!但是關於它是否是一個好主意取決於我所說的用例。 – Sjoerd222888