Verwenden des .NET XmlSerializers zur Ausgabe von Zeichenfolgen als CDATA
Das .NET XmlSerializer
unterstützt die Serialisierung von Zeichenfolgen als CDATA mithilfe von Attributen nicht direkt. Dies kann jedoch mit einer benutzerdefinierten Lösung mit einem Getter und einem Setter erreicht werden.
Hier ist ein Kurs, der diese Technik demonstriert:
<code class="language-csharp">[Serializable] public class MyClass { public MyClass() { } [XmlIgnore] public string MyString { get; set; } [XmlElement("MyString")] public System.Xml.XmlCDataSection MyStringCDATA { get { return new System.Xml.XmlDocument().CreateCDataSection(MyString); } set { MyString = value.Value; } } }</code>
Serialisierungsbeispiel:
<code class="language-csharp">// Create a MyClass instance MyClass mc = new MyClass(); mc.MyString = "<test>Hello World</test>"; // Create the XmlSerializer and serialize the object XmlSerializer serializer = new XmlSerializer(typeof(MyClass)); StringWriter writer = new StringWriter(); serializer.Serialize(writer, mc); // Display the serialized XML Console.WriteLine(writer.ToString());</code>
Erwartete Ausgabe:
Die Ausgabe zeigt die in einem CDATA-Abschnitt eingeschlossene Zeichenfolge:
<code class="language-xml"><?xml version="1.0" encoding="utf-16"?><myclass xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><mystring><![CDATA[<test>Hello World</test>]]></mystring></myclass></code>
Diese Methode serialisiert Zeichenfolgen mithilfe von XmlSerializer
effektiv als CDATA und umgeht so den Mangel an direkter Attributunterstützung.
Das obige ist der detaillierte Inhalt vonWie kann ich Strings mit dem .NET XmlSerializer als CDATA serialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!