Deserialisieren von XML ohne Namensräume, aber in der einen Klasse erwarten namespaces

Duplizieren:
Weglassen alle xml-namespaces beim serialisieren eines Objekts?
Nicht das gleiche.. ich will in die andere Richtung: Deserialisieren!


Habe ich eine C# - Klasse als Gebrüll:

[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.42")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.portalfiscal.inf.br/nfe")]
[System.Xml.Serialization.XmlRootAttribute("NFe", Namespace = "http://www.portalfiscal.inf.br/nfe", IsNullable = false)]
public partial class TNFe
{

    private TNFeInfNFe infNFeField;

    private SignatureType signatureField;

    ///<remarks/>
    public TNFeInfNFe infNFe
    { ...

Ich verwenden Sie diese Klasse zum serialisieren/Deserialisieren von XML-Dateien durch den Benutzer anfordern.
Aber ich habe da ein problem: Namensräume definition Hinzugefügt wurden, auf die neue version dieser software.
Die XML ist immer noch die gleiche, nur das hinzufügen von namespaces definition.

ZB., Letzte version...

<?xml version="1.0" encoding="utf-8" ?>
  <NFe>
    <infNFe version="1.10">
      ...

und neue version...

<?xml version="1.0" encoding="utf-8" ?> 
  <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
    <infNFe version="2.10">
      ...

Brauche ich zum laden von XML-Dateien mit und ohne diese namespaces.
Ich habe eine Menge von geschachtelten Klassen, und jeder davon hat seine eigene namespaces definition.

Ich möchte die gleichen Klassen für XML, mit und ohne namespaces.

Ich habe versucht, erstellen Sie ein XmlTextReader-und überschreiben die NamespaceURI-Methode, aber ich erhält noch eine Ausnahme mit nicht viel info. Ich denke .NET engine versucht zu zwingen, die Klasse namespace-definition für das XML.

Hi, ist dein query gelöst?
Arijit, ich löste es mit einem anderen Ansatz. Leider gibt es keine Möglichkeit, das zu tun, was ich wollte, wie ich wollte (mit weniger code wie möglich). So habe ich XmlTextReader für einige webservices und auf andere, die ich serialisiert das ganze Xml in einen string um und entfernt die nicht verwendete namespaces mit Hilfe von String.Ersetzen. Nicht die beste Sache überhaupt, aber es hat sich erwiesen, auch gut.
Danke für die Antwort, naja, eigentlich mein problem ist, suchen, die Ihnen ähnlich sind, die Antwort, die unten angegeben ist, nicht funktioniert, denke ich. Kannst du zeigen wie du es gemacht hast? Es ist 4 Jahre, warum microsoft nicht daran gedacht?

InformationsquelleAutor rodrigogq | 2010-02-19

Schreibe einen Kommentar