का उपयोग कर व्युत्पन्न वर्ग को क्रमबद्ध करना मेरे पास एक बेस क्लास है जो एक्सएमएल सीरियलाइजेशन और एक व्युत्पन्न कक्षा के साथ संगत है जो IXmlSerializable लागू करता है।सी # एक्सएमएल- IXmlSerializable
इस उदाहरण में, आधार वर्ग IXmlSerializable को लागू करता है:
using System.Diagnostics;
using System.Text;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Serialization;
namespace XmlSerializationDerived
{
public class Foo
{
public int fooProp;
public XmlSchema GetSchema()
{
return null;
}
public void ReadXml(XmlReader reader)
{
fooProp = int.Parse (reader.ReadElementString ("fooProp"));
}
public void WriteXml(XmlWriter writer)
{
writer.WriteElementString ("fooProp", fooProp.ToString());
}
}
public class Bar : Foo, IXmlSerializable
{
public new void ReadXml(XmlReader reader)
{
base.ReadXml (reader);
}
public new void WriteXml(XmlWriter writer)
{
base.WriteXml (writer);
}
static void Main(string[] args)
{
StringBuilder sb = new StringBuilder();
XmlWriter writer = XmlWriter.Create (sb);
Bar bar = new Bar();
bar.fooProp = 42;
XmlSerializer serializer = new XmlSerializer (typeof (Bar));
serializer.Serialize (writer, bar);
Debug.WriteLine (sb.ToString());
}
}
}
यह इस उत्पादन का उत्पादन:
<?xml version="1.0" encoding="utf-16"?><Bar><fooProp>42</fooProp></Bar>
हालांकि, मैं एक आधार वर्ग जो नहीं करता है का उपयोग करना चाहते IXmlSerializable लागू करें। यह base.Read/WriteXml
का उपयोग रोकता है। नतीजा होगा:
<?xml version="1.0" encoding="utf-16"?><Bar />
क्या वांछित परिणाम प्राप्त करने का कोई तरीका है?
जावा से आ रहा है और यह मृत आसान क्रमबद्धता है, मैं इसे सुनकर थोड़ा दुखी हूं। मैंने वास्तव में बेस क्लास बनाया, जिसे मैं सौभाग्य से एक्सेस करता हूं, IXmlSerializable को लागू करता हूं। यह काम करता है, लेकिन यह दर्द होता है, क्योंकि मैं कोड लिख रहा हूं जो अस्तित्व में नहीं है। – mafu
जब तक कोई नया दृष्टिकोण नहीं लेता है, यह आधिकारिक उत्तर है। – mafu