9
votes

Comment utiliser XMLSerializer pour insérer une chaîne XML?

J'ai défini la classe suivante: xxx

et créé un objet: xxx

lorsque j'utilise la classe XMLSerializer pour sérialiser cet objet. , il retournera le XML: xxx

Comment puis-je ne pas encoder mon contenu xmlstring afin que je puisse obtenir le XML sérialisé comme xxx < / pré>

merci, Ian


0 commentaires

4 Réponses :


0
votes

Je serais très surpris si cela était possible. Supposons que cela vous ait été possible de faire cela - que se passerait-il si vous aviez une XML malformée dans la propriété - tout ne serait pas rompre.

Je pense que vous devriez soit avoir besoin d'écrire votre propre sérialisation dans ce cas, de le faire pour que le champ XMLString soit une structure contenant un champ FOO.


0 commentaires

2
votes

Vous pouvez (AB) Utiliser le Interface IXMLSerializable un XMLWriter. Wribiaw pour cela. Mais alors que Gareth, vous avez souligné que vous devez écrire votre propre code de sérialisation.

<?xml version="1.0" encoding="ibm850"?>
<Root>
  <Name>Test</Name>
  <XmlString><Foo>bar</Foo></XmlString>
</Root>


0 commentaires

1
votes

Essayez ceci:

public class Root
{
    public string Name;
    public XDocument XmlString;
}

Root t = new Root 
         {  Name = "Test", 
            XmlString = XDocument.Parse("<Foo>bar</Foo>")
         };


0 commentaires

14
votes

Vous pouvez limiter la sérialisation personnalisée à l'élément qui nécessite une attention particulière comme. XXX


1 commentaires

+1, je préférerais cela sur ma racine de classe: approche ixmlSérialisable.