2011-11-07 42 views
2

我有以下類。我想不希望派生類序列化「名稱」,但是,下面的代碼似乎不工作。如果我聲明派生類的一個實例,在「名稱」屬性仍然被序列化..WCF排除派生類中要序列化的數據成員

[DataContract] 
public class Base 
{ 
    [DataMember] 
    public virtual string Name 
    {get; set; } 
} 
[DataContract] 
public class Derived: Base 
{ 
    [IgnoreDataMember] 
    public override string Name 
    {get; set; } 
} 

回答

0

如果你申報財產在基類的虛?然後在派生類中覆蓋它

+0

謝謝。這是一個錯字,我確實在我的Base類中聲明瞭它,並在我的派生類中重寫。它不起作用。仍然序列化「名稱」:( – RKM

0

嘗試使用ScriptIgnore(json)或XmlIgnore(xml)屬性,具體取決於您要序列化的內容。這應該防止該成員被序列化。

0

如果您想嘗試在這裏使用XmlSerializer的是代碼

public class Base 
{ 
    [XmlIgnore] 
    public virtual string Name { get; set; } 
} 

public class Derived : Base 
{ 
    [XmlIgnore] //Remove this to include 
    public override string Name { get; set; } 
} 
MemoryStream memStream = new MemoryStream(); 
XmlSerializer xmlSer = new XmlSerializer(typeof(Derived)); 
xmlSer.Serialize(memStream, new Derived() { Name = "aaaa" }); 
MessageBox.Show(Encoding.UTF8.GetString(memStream.ToArray()));