2012-02-20 49 views
1

如果我爲當前類型屬性定義ShouldSerialize *,它將起作用。但是,如果我指定基本類型屬性,則不起作用。同爲*指定XmlSerializer ShouldSerialize *不適用於基類型屬性

[XmlInclude(typeof(SingleEventGroup))] 
    [XmlInclude(typeof(MultipleEventsGroup))] 
    public abstract class EventsGroup 
    { 
     public List<int> EventsIds { get; set; } 
     public string Name { get; set; } 
    } 

public class SingleEventGroup : EventsGroup 
    { 
     public bool ShouldSerializeName() 
     { 
      return false; //it is still serialized 
     } 
    } 

回答

3

XmlSerializer的查找你的會員Name的.DeclaringType,而不是在.ReflectedType方法。這就是爲什麼它不起作用。

+1

看起來像它的工作,如果你在基礎類型中實現'ShouldSerializeName'作爲虛擬然後覆蓋繼承類型。 – 2012-06-19 19:05:44

+0

任何工作......如果你沒有訪問基類? – konzo 2016-07-08 17:06:10

相關問題