Is it possible to ignore a property of a parent class when serializing a child class into XML? I also want to do this with JSON if possible, but I'd like xml working first if it is doable.
For example, if I have a base class like this:
    [Serializable]
    [DataContract]
    public abstract class BaseClass
    {
        protected string _correlationID;
        private bool _isValid;
        /// <summary>
        /// get/set the correlation id
        /// </summary>
        [DataMember]
        public virtual string CorrelationID
        {
            get{ return _correlationID; }
            set{ _correlationID = value; }
        }
        /// <summary>
        /// get/set IsValid
        /// </summary>
        [DataMember]
        public virtual bool IsValid 
        {
            get { return _isValid; }
            set { _isValid = value; }
        }
    }
and a child class like this
    [Serializable]
    [DataContract]
    public class MyClass : BaseClass
    {
        private int _objectId;
        private string _objectName;
        /// <summary>
        /// get/set the object id
        /// </summary>
        [DataMember]
        public int ObjectId 
        { 
            get { return _objectId; }
            set { _objectId = value; }
        }
        /// <summary>
        /// get/set the object name
        /// </summary>
        [DataMember]
        public int ObjectName 
        { 
            get { return _objectName; }
            set { _objectName = value; }
        }
        [XmlIgnore]
        public override string CorrelationID
        {
            get{ return _correlationID; }
            set{ _correlationID = value; }
        }       
    }
I want the xml to be returned as:
<MyClass>
    <IsValid>true</IsValid>
    <ObjectId>5</ObjectId>
    <ObjectName>My Object</ObjectName>
</MyClass>
However, if I try to override the virtual property and add the xml ignore attribute to it, the xml as if I didn't specify and attribute:
<MyClass>
    <CorrelationID>12345678910</CorrelationID>
    <IsValid>true</IsValid>
    <ObjectId>5</ObjectId>
    <ObjectName>My Object</ObjectName>      
</MyClass>
I've also tried using [IgnoreDataMember], but it results in the same thing.
I am attempting to do this in MVC/Web APIs to start, but I'd like it to also be applicable to WCF if possible.
Any direction would be helpful. Thanks in advance.