Deserialisieren Sie XML ohne Namespaces, aber in einer Klasse, die Namespaces erwartet

Duplikat:
Alle XML-Namespaces bei der Serialisierung eines Objekts weglassen? Nicht das Gleiche .. Ich möchte in der anderen Richtung: Deserialisieren!

Ich habe eine C # -Klasse wie folgt:

[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 benutze diese Klasse, um XML-Dateien auf Benutzerwunsch zu serialisieren / zu deserialisieren. Aber ich habe ein Problem: Namensraumdefinitionen wurden in der neuen Version dieser Software hinzugefügt. Das XML ist immer noch dasselbe, es werden nur Namespaces hinzugefügt.

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">
      ...

Ich muss XML-Dateien mit und ohne diese Namespaces laden. Ich habe viele verschachtelte Klassen und jede hat ihre eigene Namespace-Definition.

Ich möchte die gleichen Klassen für XML mit und ohne Namespaces verwenden.

Ich habe versucht, einen XmlTextReader zu erstellen und die NamespaceURI-Methode zu überschreiben, erhalte jedoch weiterhin eine Ausnahme ohne viele Informationen. Ich denke, .NET Engine versucht, die Klassennamensraumdefinition gegen das XML zu erzwingen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage