Comment définir xmlns lors de la sérialisation d'objet en c#
Je suis de la sérialisation d'un objet dans mon ASP.net MVC programme d'une chaîne de caractères xml comme ceci;
StringWriter sw = new StringWriter();
XmlSerializer s = new XmlSerializer(typeof(mytype));
s.Serialize(sw, myData);
Maintenant, cela me donner ce que les 2 premières lignes;
<?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">
ma question est,
Comment puis-je changer la xmlns et le type de codage, lors de la sérialisation?
Grâce
OriginalL'auteur John | 2010-04-02
Vous devez vous connecter pour publier un commentaire.
La
XmlSerializer
type a un deuxième paramètre de son constructeur par défaut de l'espace de noms xml - le "xmlns:" espace de noms:Pour définir l'encodage, je vous suggérons d'utiliser un
XmlTextWriter
au lieu d'une ligne droiteStringWriter
et de créer quelque chose comme ceci:Dans le
XmlWriterSettings
, vous pouvez définir une pléthore d'options - y compris l'encodage.OriginalL'auteur marc_s
Ce que j'ai trouvé qui fonctionne, c'était d'ajouter cette ligne dans ma classe,
et de l'ajouter à mon code pour ajouter de l'espace de noms quand j'appelle sérialiser
aussi longtemps que les deux espaces de match, il fonctionne bien.
OriginalL'auteur John
Prendre un coup d'oeil à la les attributs qui contrôlent la sérialisation XML.NET.
Plus précisément, le XmlTypeAttribute peut être utile pour vous. Si vous êtes à la recherche pour modifier l'espace de noms par défaut pour vous fichier XML, il y a un deuxième paramètre à la
XmlSerializer
constructeur qui vous permet de définir que.OriginalL'auteur LBushkin