Ich habe eine Klasse mit einer Eigenschaft, die mit [XmlText]
markiert ist und die mehrzeilige Eingabe akzeptiert. In meiner XML-Datei habe ich überprüft, dass die Zeilenenden innerhalb des Textinhalts infact "\r\n"
sind, genau wie der Rest der Datei.
Der Code, den ich zur Deserialisierung verwende, ist:
%Vor% Aber innerhalb des Setter für die Eigenschaft [XmlText]
hat value
bereits "\n"
als Zeilenende. Der Hauptgrund dafür ist, dass "\n"
-Zeilenendungen in TextBox
nicht richtig angezeigt werden ... Ich bin mir nicht ganz sicher, welcher Teil die Probleme verursacht, aber ich dachte, dass jemand hier etwas verlieren könnte Licht auf die Situation.
Ich habe den Beispielcode geändert, um den Code schneller in eine C # -Entwicklungsumgebung zu bringen. Ich habe auch bewusst keine Anweisungen verwendet, es ist nur Beispielcode.
Für das Beispiel haben wir die folgende Klasse, die wir serialisieren möchten:
%Vor%Wenn wir versuchen, diese Zeile so zu serialisieren und zu deserialisieren, wie Sie die Zeile beschreiben, in der "Same" ausgedruckt wird, wird sie nicht ausgeführt (ich gehe davon aus, dass der Code unter Windows mit Environment.NewLine ausgeführt wird) \ n "Wenn Sie nicht sind:
%Vor%Dies kann jedoch behoben werden, indem manuell ein XmlTextReader dem Serializer zugewiesen wird, dessen Eigenschaft Normalization auf false gesetzt ist (der standardmäßig im Serializer verwendete Wert ist true):
%Vor%Dasselbe wird nun ausgedruckt, und wenn ich nicht falsch liege, ist das Verhalten, das Sie benötigen?
Wenn Sie serialisiert haben , dann wäre XmlWriterSettings.NewLineHandling
( Replace
) einen Versuch wert - aber das hilft nicht beim Lesen. Ein bisschen grungy, aber vielleicht direkt im Setter:
Tags und Links c# xml xml-serialization newline