Как создать сериализуемый класс C# из XML-файла



Я довольно новичок в XML в .net. в рамках моей задачи мне нужно создать класс, который может быть сериализован в XML. У меня есть пример XML-файла со всеми тегами (класс должен производить XML, подобный образцу XML-файла). как лучше всего создать класс из XML-файла?



Заранее спасибо!!

599   3  

3 ответов:

Вы можете использовать XSD.exe, чтобы создать .cs-файл от .XML. http://msdn.microsoft.com/en-us/library/x6c1kb0s%28VS.71%29.aspx

В командной строке:

xsd myFile.xml
xsd myFile.xsd

Первая строка будет генерировать файл определения схемы (xsd), второй файл должен генерировать.cs-файл. Я не уверен, что синтаксис является точным, но это должно помочь вам начать.

Работа в обратном направлении может помочь-сначала создайте свой класс, затем сериализуйте и посмотрите, что вы получите.

Для простейших классов это на самом деле довольно легко. Вы можете использовать XmlSerializer для сериализации, например:

namespace ConsoleApplication1
{
    public class MyClass
    {
        public string SomeProperty
        {
            get;
            set;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(MyClass));
            TextWriter writer = new StreamWriter(@"c:\temp\class.xml");

            MyClass firstInstance = new MyClass();
            firstInstance.SomeProperty = "foo"; // etc

            serializer.Serialize(writer, firstInstance);
            writer.Close();

            FileStream reader = new FileStream(@"c:\temp\class.xml", FileMode.Open);

            MyClass secondInstance = (MyClass)serializer.Deserialize(reader);

            reader.Close();
        }
    }
}

Это позволит записать сериализованное представление вашего класса в XML для "c:\temp\class.XML". Вы можете взглянуть и посмотреть, что вы получите. В обратном случае можно использовать сериализатор.Десериализовать, чтобы создать экземпляр класса из "c:\temp\class.XML".

Вы можете изменить поведение сериализации, и иметь дело с неожиданными узлами и т. д.-взгляните на страницу XmlSerializer MSDN, например.

Вот хороший пример того, как сериализовать/десериализовать объект. http://sharpertutorials.com/serialization/

Comments

    Ничего не найдено.