La Sérialisation XML de la Liste<T> XML Racine
Première question sur Stackoverflow (.Net 2.0):
Aussi je vais essayer de revenir un XML d'une Liste contenant les éléments suivants:
public XmlDocument GetEntityXml()
{
StringWriter stringWriter = new StringWriter();
XmlDocument xmlDoc = new XmlDocument();
XmlTextWriter xmlWriter = new XmlTextWriter(stringWriter);
XmlSerializer serializer = new XmlSerializer(typeof(List<T>));
List<T> parameters = GetAll();
serializer.Serialize(xmlWriter, parameters);
string xmlResult = stringWriter.ToString();
xmlDoc.LoadXml(xmlResult);
return xmlDoc;
}
Maintenant cela va être utilisé pour de multiples Entités, j'ai déjà défini.
Dire que j'aimerais obtenir un XML de List<Cat>
Le XML serait quelque chose comme:
<ArrayOfCat>
<Cat>
<Name>Tom</Name>
<Age>2</Age>
</Cat>
<Cat>
<Name>Bob</Name>
<Age>3</Age>
</Cat>
</ArrayOfCat>
Est-il un moyen pour moi d'obtenir la même Racine de tous les temps lors de l'obtention de ces Entités?
Exemple:
<Entity>
<Cat>
<Name>Tom</Name>
<Age>2</Age>
</Cat>
<Cat>
<Name>Bob</Name>
<Age>3</Age>
</Cat>
</Entity>
Notez également que je n'ai pas l'intention de Désérialiser le XML retour à List<Cat>
- Qu'entendez-vous par "obtenir la même Racine de tous les temps" ? Veuillez donner plus de détails...
Vous devez vous connecter pour publier un commentaire.
Il y a beaucoup de moyen facile:
XmlSerializer
doit ętre mis en cache et réutilisés pour éviter une grave fuite de mémoire, reportez-vous à Fuite de Mémoire à l'aide de StreamReader et XmlSerializer pour plus de détails.Si je comprends bien, vous voulez la racine du document est de toujours être le même, quel que soit le type de l'élément dans la collection ? Dans ce cas, vous pouvez utiliser XmlAttributeOverrides :
Une meilleure façon de la même chose:
si simple....