powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / xml-сериализация
7 сообщений из 7, страница 1 из 1
xml-сериализация
    #38190946
RomanH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую дорогие форумчане!
Имеются вот такие классы:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
        [Serializable]
        public abstract class Document
        {
            [XmlAttribute]
            public string Code { get; set; }
        }

        [Serializable]
        public class Order : Document
        {
            [XmlAttribute]
            public int IdCustomer { get; set; }
        }

        [Serializable]
        public class Invoice : Document
        {
            [XmlAttribute]
            public int IdSupplier { get; set; }
        }



Мне необходимо получить xml вот такой структуры при сериализации инстансов класса Invoice и Order:
Код: xml
1.
2.
3.
4.
5.
6.
7.
<Document>
<Invoice Code="002" IdSupplier="7" />
</Document>

<Document>
<Order Code="001" IdCustomer="5" />
</Document>



Можно ли используя стандартную сериализацию получить такую структуру?
Если нет, то как это сделать?
Подскажите пожалуйста.
Спасибо!
...
Рейтинг: 0 / 0
xml-сериализация
    #38191109
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RomanH,
Стандартными нет.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
            Invoice inv = new Invoice() { Code = "002", IdSupplier = 7 };
            XDocument doc = new XDocument() { Declaration = new XDeclaration("1.0", "utf-16", null) };
            var type = inv.GetType();
            doc.Add(new XElement(type.BaseType.Name));
            var el = new XElement(type.Name);
            doc.Root.Add(el);
            foreach (var p in type.GetProperties())
            {
                el.Add(new XAttribute(p.Name, p.GetValue(inv, null)));
            }
...
Рейтинг: 0 / 0
xml-сериализация
    #38191188
RomanH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВСтандартными нет.

Жаль.
Ваш вариант подошел бы, да вот только еще же и десериализация нужна.
Спасибо за ваш вариант.
Буду думать дальше.
...
Рейтинг: 0 / 0
xml-сериализация
    #38191310
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RomanHМожно ли используя стандартную сериализацию получить такую структуру?

можно, читай мсдн об атрибутах управляющих сериализацией
...
Рейтинг: 0 / 0
xml-сериализация
    #38191315
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationRomanHМожно ли используя стандартную сериализацию получить такую структуру?

можно, читай мсдн об атрибутах управляющих сериализацией
вариант 2: (от обратного)

xsd.exe создаст тебе классы по xml
...
Рейтинг: 0 / 0
xml-сериализация
    #38191403
RomanH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationxsd.exe создаст тебе классы по xml
В том и дело, что создаст класс ы . А мне нужно только один класс на каждый бизнес-объект.
За xsd.exe - спасибо, не знал что она может генерить классы по xsd-схеме.
Вот собственно, что эта утилита предлагает сделать. Создать вот такой контейнер:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
        [Serializable]
        [XmlRoot("Document")]
        public class DocumentContainer
        {
            [XmlElement("Order")]
            public List<Order> Orders { get; set; }
            [XmlElement("Invoice")]
            public List<Invoice> Invoices { get; set; }

            public DocumentContainer()
            {
                Orders = new List<Order>();
                Invoices = new List<Invoice>();
            }
        }


Может это и правильно.
...
Рейтинг: 0 / 0
xml-сериализация
    #38191412
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationRomanHМожно ли используя стандартную сериализацию получить такую структуру?

можно, читай мсдн об атрибутах управляющих сериализацией
А можно привести код?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / xml-сериализация
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]