Hinzufügen eines namespace-Präfix zu einem XmlRoot-Attribut

:riI arbeite .Net web api, haben wir eine Basis-Klasse behandelt alle Antworten von unserer api. Diese Klasse wird immer zurückgegeben werden, wie die Wurzel der Anfrage mit, welche Daten der Benutzer angeforderte drin.

So wird der Benutzer immer eine Antwort erhalten, die entlang der Linien von:

<Content xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://www.example.com/schemas/TestNamespace/Interface6/Schema.xsd">
        <Item>Information Here</Item>
</Content>

Habe ich folgende code gibt das oben fein:

[XmlRoot(ElementName = "Content", Namespace = "http://www.example.com/schemas/TestNamespace/Interface6/Schema.xsd")]
public class MyResponse<T> : IMyResponse<T>
    where T : class
{//rest of class}

So, egal was der root-tag der Rückgabe der Daten ist, wird es immer geändert werden, um "Content". Also, wenn T in meinem code ist ein PersonList, es geändert werden, um "Inhalte" in der XML. Dies ist, um die Kohärenz in unseren Reaktionen.

Nun ich muss noch ein Präfix für den tag. "ri:" Also, die Antwort erhalten wird:

<ri:Content xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:ri="http://www.example.com/schemas/TestNamespace/Interface6/Schema.xsd">
        <Item>Information Here</Item>
</ri:Content>

Jede Frage sehr nahe, was ich benötigen Lösungen, um das hinzufügen des Präfix im code.

Möchte ich wissen, ob es eine Möglichkeit gibt, dies zu tun mit dem Attribut ?

Hier ist eine ähnliche Frage wurde nie beantwortet

Bearbeiten: Hinzufügen ri: der ElementName des XmlRoot-Attribut nicht funktioniert.

[XmlRoot(ElementName = "ri:Content", Namespace = "http://www.example.com/schemas/TestNamespace/Interface6/Schema.xsd")]

Gibt wie:

<ri_x003A_Content xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns="http://www.example.com/schemas/TestNamespace/Interface6/Schema.xsd">
            <Item>Information Here</Item>
    </ri_x003A_Content>
Danke für den Hinweis, ich vergaß zu hinzufügen es. Bearbeitet meine post. xmlns:ri="http://www.example.com/schemas/TestNamespace/Interface6/Schema.xsd" ist, was es sein sollte.
Können Sie fügen Sie den code, die Sie verwenden, um führen Sie die Serialisierung zu XML?
Verwandte: stackoverflow.com/questions/2339782/...

InformationsquelleAutor strvanica | 2015-02-26

Schreibe einen Kommentar