J'essaye de changer le nom de racine en faisant la sérialisation XML avec C#.Comment changer le nom de racine XML avec XML Serialization?
Il prend toujours le nom de classe et pas le nom avec lequel je suis en train de le définir.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
MyTest test = new MyTest();
test.Test = "gog";
List<MyTest> testList = new List<MyTest>()
{
test
};
SerializeToXML(testList);
}
static public void SerializeToXML(List<MyTest> list)
{
XmlSerializer serializer = new XmlSerializer(typeof(List<MyTest>));
TextWriter textWriter = new StreamWriter(@"C:\New folder\test.xml");
serializer.Serialize(textWriter, list);
textWriter.Close();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
namespace ConsoleApplication1
{
[XmlRootAttribute(ElementName = "WildAnimal", IsNullable = false)]
public class MyTest
{
[XmlElement("Test")]
public string Test { get; set; }
}
}
Résultat
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfMyTest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MyTest>
<Test>gog</Test>
</MyTest>
</ArrayOfMyTest>
Il ne change pas à wildanimal. Je ne suis pas sûr pourquoi. Je l'ai eu d'un tutoriel.
Modifier @ Marc
Merci. Je vois maintenant ce que vous faites semble si bizarre que vous devez en faire un emballage. J'ai encore une question ce qui se passe si je voulais faire ce format
<root>
<element>
<name></name>
</element>
<anotherElement>
<product></product>
</anotherElement>
</root>
ainsi comme un éléments imbriqués. Est-ce que je devrais faire une nouvelle classe pour la deuxième partie et coller cela dans la classe d'emballage aussi?
Re votre édition; cela dépend de si vous allez un 'anotherElement' par' product', ou un seul 'anotherElement' avec des éléments' product' perdus. Pour le dernier: '[XmlArray]'/'[XmlArrayItem]' - sinon oui: un second type. –