1
我有兩個類,其中具體類Model<T>
隱藏基類「Items
」屬性。在使用Json.NET序列化期間試圖隱藏基類成員
class Model
{
List<ListItem> Items {get;set;}
}
class Model<T> : Model
{
new List<ListItem<T>> Items {get;set;}
}
在與Json.NET序列化的Model<T>
的情況下,我得到的錯誤:
Newtonsoft.Json.JsonSerializationException
: A member with the name 'Items
' already exists on 'Model<T>
'. Use theJsonPropertyAttribute
to specify another name.
我明白爲什麼我收到此錯誤,但是,我不想更改的屬性名字在具體類;我想能夠告訴序列化程序忽略基類屬性。
我嘗試使用ShouldSerialize{PropertyName}()
約定XmlSerializer
支持,並Json.NET claims to support too然而,這似乎不爲我的方案工作。
是'Model'唯一將被序列化的類型,或者您可能想序列化'Model'對象嗎? –
2012-02-16 01:12:54
@ M.Babcock我應該澄清一下,'Model'也可以序列化......否則使用'[JsonIgnore]'標記'Model.Items'可以直接進行# – 2012-02-16 01:15:19
您可以在基礎中創建'Items'虛擬類並使用'override'而不是用'new'隱藏?我知道這不是你要求的,但是如果你能控制這兩種類型的話;爲什麼不以「正確」的方式去做呢? – 2012-02-16 01:18:45