10
votes

Comment définir XMLNS lors de la sérialisation objet en C #

Je suis sérialisé un objet dans mon programme ASP.NET MVC à une chaîne XML comme celle-ci;

<?xml version="1.0" encoding="utf-16"?>
<GetCustomerName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">


0 commentaires

3 Réponses :


1
votes

Jetez un coup d'œil au Attributs qui contrôlent la sérialisation XML in .NET.

Plus précisément, le xmltypeattribute mai être utile pour vous. Si vous souhaitez modifier l'espace de noms par défaut pour votre fichier XML, il existe un second paramètre au XmlSerializer constructeur où vous pouvez définir cela.


0 commentaires

10
votes

Le type xmlSerializer code> a un deuxième paramètre dans son constructeur qui est l'espace de noms XML par défaut - l'espace de noms "xmlns:": xxx pré>

pour définir le codage, Je vous suggère d'utiliser un xmltextwriter code> au lieu d'un stritter code> et créez-le quelque chose comme ceci: p>

XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = Encoding.UTF8;

XmlTextWriter xtw = XmlWriter.Create(filename, settings);

s.Serialize(xtw, myData);


0 commentaires

12
votes

Qu'est-ce que j'ai trouvé que les œuvres devaient ajouter cette ligne à ma classe, xxx pré>

et ajouter ceci à mon code pour ajouter l'espace de noms lorsque j'appelle Serialize P>

    XmlSerializerNamespaces ns1 = new XmlSerializerNamespaces();
    ns1.Add("", "http://myurl.com/api/v1.0");
    xs.Serialize(xmlTextWriter, FormData, ns1);


0 commentaires