XML-Deserialisierung von DataTable-oder DataSet -

Ich habe Folgendes XML:

     <NewDataSet>
        <xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
          <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="Data" msdata:UseCurrentLocale="true">
            <xs:complexType>
              <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element name="Data">
                  <xs:complexType>
                    <xs:sequence>
                    </xs:sequence>
                  </xs:complexType>
                </xs:element>
              </xs:choice>
            </xs:complexType>
          </xs:element>
        </xs:schema>
     </NewDataSet>

Ich weiß, das war geschaffen durch serialisieren wird eine DataTable mit new XmlSerializer(typeof(DataTable)).Serialize(writer, (DataTable)myDataTable);.

Das schema als auch die eigentlichen Daten werden anders in Ihnen.

Muss ich Deserialisieren, und habe versucht, die folgenden:

reader.ReadStartElement("NewDataSet");
var dataSet = (DataTable)new XmlSerializer(typeof(DataTable)).Deserialize(reader);
reader.ReadEndElement();

und auch:

reader.ReadStartElement("NewDataSet");
var dataSet = (DataSet)new XmlSerializer(typeof(DataSet)).Deserialize(reader);
reader.ReadEndElement();

Alles, was ich bekam war

System.InvalidOperationException wurde unbehandelt
Meldung=Es ist ein Fehler in XML-Dokument (26, 14).
Source=System.Xml

InnerException:

"http://www.w3.org/2001/XMLSchema'> war nicht zu erwarten."

Wie kann ich Deserialisieren, die Sache?

Ich denke, das Problem ist, da Sie bereits genannt-reader.ReadStartElement, versuchen Sie, die Initialisierung der Leser und übergeben Sie direkt an die XmlSerializer
Können schreiben Sie bitte ein Beispiel code wie das zu tun?

InformationsquelleAutor Adam Szabo | 2013-06-28

Schreibe einen Kommentar