Hier ist mein Objekt
%Vor%Wenn ich versuche, dies zu xml zu serialisieren, erhalte ich eine Fehlermeldung "Die Eigenschaft oder der Indexer PersistentObject.ID kann in diesem Kontext nicht verwendet werden, weil auf den Set-Accessor nicht zugegriffen werden kann". Wenn der Setter nicht existiert, funktioniert es gut. Ich möchte diese ID als serialisiert behalten ohne eine hacktastische Lösung, die eine von [XmlIgnore ()] auf ID beinhaltet. Ich würde es vorziehen, wenn ich nur den Setzer [XmlIgnore ()] hinzufügen könnte, aber der Compiler beschwert sich. Hat jemand eine gute Lösung?
Leider nein. XmlSerializer
hat einige Dinge, die ... irritierend sind. Dies ist einer von ihnen. Optionen:
DataContractSerializer
(was protected
etc unterstützt, aber nicht bietet volle xml Kontrolle) [XmlIgnore]
kommentieren - nichts falsch daran IXmlSerializable
- harte Arbeit und sehr leicht falsch zu verstehen protected
, um den Wert XmlSerializer
, mit dem Sie alles zur Laufzeit angeben können. viel Arbeit / Wartung, und Sie müssen den Serializer manuell zwischenspeichern (andernfalls erstellt er viele dynamische Baugruppen) Auch wenn Ihre Frage nicht direkt beantwortet wird, beachten Sie, dass Sie Eigenschaften mit einem internal
Setter serialisieren können. Dazu müssen Sie die XML-Serialisierungsassembly mit Sgen.exe vorgenerieren und diese Assembly mit dem InternalsVisibleTo
-Attribut als "Freund" deklarieren:
Tags und Links c# xml-serialization