powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Помогите десериализовать xml
3 сообщений из 3, страница 1 из 1
Помогите десериализовать xml
    #39172534
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется хмл:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<?xml version="1.0" encoding="utf-16" standalone="yes"?>
<Root>
       <Path Namespace="root\WMI" Class="WmiMonitorID" Name="Monitor">
                                                   <Property Name="ManufacturerName" isByteArray="1"></Property>
                                                   <Property Name="ProductCodeID" isByteArray="1"></Property>
                                                   <Property Name="SerialNumberID" isByteArray="1"></Property>
                                                   <Property Name="UserFriendlyName" isByteArray="1"></Property>
       </Path>
       <Path Namespace="root\cimv2" Class="Win32_Processor" Name="Processor">
                                                   <Property Name="Name" isByteArray="0"></Property>
                                                   <Property Name="Description" isByteArray="0"></Property>
                                                   <Property Name="NumberOfCores" isByteArray="0"></Property>
                                                   <Property Name="NumberOfLogicalProcessors" isByteArray="0"></Property>
                                                   <Property Name="ProcessorId" isByteArray="0"></Property>
       </Path>
</Root>



Нужно десериализовать его такой вот объект:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Imports System.Xml.Serialization

<Serializable(), XmlType("Property")>
Public Class WMI_Property
    <XmlAttributeAttribute("Name")> Property Name As String
    <XmlAttributeAttribute("isByteArray")> Property isByteArray As String
End Class

<Serializable(), XmlRoot("Root"), XmlType("Path")>
Public Class WMI_Path
    <XmlAttributeAttribute("Namespace")> Property [Namespace] As String
    <XmlAttributeAttribute("Class")> Property [Class] As String
    <XmlAttributeAttribute("Name")> Property [Name] As String
    ' Вот тут непонятно, как указать сериалайзеру, что нужно заполнить лист из элементов Property???
    Property WMI_Properties As New List(Of WMI_Property)
End Class

<Serializable(), XmlType("Root")>
Public Class WMI_Collection
    <XmlElement("Path")> Property WMI_Properties As New List(Of WMI_Path)
End Class



Как не бьюсь - не получается.
Собственно, десериализация выполняется просто,
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Sub Main()
        Dim col As WMI_Collection
        Dim serializer As New XmlSerializer(GetType(WMI_Collection))
        Using reader As TextReader = New StringReader(InventoryParameters.ToString)
            col = serializer.Deserialize(reader)
        End Using

    End Sub


но никак не могу заставить заполнится список из тегов Property
Посоветуйте что-нибудь!

Модератор: Тема перенесена из форума "Visual Basic".
...
Рейтинг: 0 / 0
Помогите десериализовать xml
    #39172776
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggster,

Вы же абсолютно аналогичным образом организовали десериализацию элементов Path. Просто в WMI_Path для свойства WMI_Properties задайте <XmlElement("Property")>.
...
Рейтинг: 0 / 0
Помогите десериализовать xml
    #39172867
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сон Веры Павловны, спасибо!

Прямо визит - эффект какой-то. Ведь я же делал так. Не цеплял, хоть убей. Стал мучится с XmlArrayItemAttribute, ни в какую. Переписывал определение классов - тоже никак.
Сейчас - заработало.

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


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