Müssen die XMLWriter-Methode überschreiben
Ich muss die XMLWriter-Methode "WriteElementString" überschreiben, um das Element nicht zu schreiben, wenn der Wert leer ist. Der folgende Code hat nicht funktioniertüberschreiben undNeu Schlüsselwörter, aber es geht immer noch um die Framework-Methode.
public static void WriteElementString(this XmlWriter writer,
string localName,
string value)
{
if (!string.IsNullOrWhiteSpace(value))
{
writer.WriteStartElement(localName);
writer.WriteString(value);
writer.WriteEndElement();
}
}
Die Antwort war nah, aber die richtige Lösung lautet:
public abstract class MyWriter : XmlWriter
{
private readonly XmlWriter writer;
public Boolean skipEmptyValues;
public MyWriter(XmlWriter writer)
{
if (writer == null) throw new ArgumentNullException("Writer");
this.writer = writer;
}
public new void WriteElementString(string localName, string value)
{
if (string.IsNullOrWhiteSpace(value) && skipEmptyValues)
{
return;
}
else
{
writer.WriteElementString(localName, value);
}
}
}