Ich versuche, eine Möglichkeit zu finden, das Serialisierungsverhalten einer Eigenschaft zu ändern.Überschreiben einer Eigenschaft mit einem Attribut
Können sagen, ich habe eine Situation wie folgt aus:
[Serializable]
public class Record
{
public DateTime LastUpdated {get; set; }
// other useful properties ...
}
public class EmployeeRecord : Record
{
public string EmployeeName {get; set; }
// other useful properties ...
}
Jetzt möchte ich EmployeeRecord serialisiert. Ich möchte nicht, dass die LastUpdated-Eigenschaft aus der Record-Klasse serialisiert wird. (Ich möchte LastUpdated serialisiert werden, wenn ich jedoch Record serialisieren).
Zuerst habe ich versucht, die Eigenschaft Lastupdated versteckt durch die neue Schlüsselwort und dann das XmlIgnore Attribut:
public class EmployeeRecord : Record
{
public string EmployeeName {get; set; }
[XmlIgnore]
public new DateTime LastUpdated {get; set; }
// other useful properties ...
}
Aber das hat nicht funktioniert. Dann habe ich versucht, so dass die Basislastupdated virtuellen und überschreibt sie, halten das Attribut:
[Serializable]
public class Record
{
public virtual DateTime LastUpdated {get; set; }
// other useful properties ...
}
public class EmployeeRecord : Record
{
public string EmployeeName {get; set; }
[XmlIgnore]
public override DateTime LastUpdated {get; set; }
// other useful properties ...
}
Dies hat nicht funktioniert entweder. In beiden Versuchen ignorierte die LastUpdated das XmlIgnore-Attribut und ging glücklich über ihre Serialisierung.
Gibt es eine Möglichkeit zu machen, was ich versuche zu tun?
Wie serialisieren Sie es? Wenn Sie die binäre Serialisierung verwenden, wird das XmlIgnore-Attribut nicht viel nutzen. –
Ich verwende XmlSerializer –
Sie würden das NonSerialized-Attribut für die binäre Serialisierung verwenden. – snarf