Как отменить выполнение XML для объекта с частичным классом, который сгенерировал xsd.exe?

У меня есть веб-служба, которая получает Xml, сгенерированный из Star Standard " http://www.starstandard.org ", и мне нужно возвращать ответ также в стандартизированном Xml, так как я Я вижу, что могу сериализовать объекты, созданные из классов, сгенерированных мной с помощью xsd.exe, однако десериализация Xml, отправляющего меня в веб-службу, вызывает у меня проблемы. Классы, которые должны быть де-реализованы, содержат Partial Class вместо Property в качестве элементов xml, поскольку элементы Xml содержат Attributes. Я надеюсь, что вы можете дать мне информацию об этом, потому что даже там, где я работаю, не знаю, как это работает, хахаха, привет. Я приведу вам пример элемента XML и его соответствующего частичного класса.

string

Частичный открытый класс AuthorizationID

Private schemeIDField As String

Private schemeNameField As String

Private schemeAgencyIDField As String

Private schemeAgencyNameField As String

Private schemeVersionIDField As String

Private schemeDataURIField As String

Private schemeURIField As String

Private valueField As String


Public Property schemeID() As String
    Get
        Return Me.schemeIDField
    End Get
    Set
        Me.schemeIDField = Value
    End Set
End Property



Public Property schemeName() As String
    Get
        Return Me.schemeNameField
    End Get
    Set
        Me.schemeNameField = Value
    End Set
End Property



Public Property schemeAgencyID() As String
    Get
        Return Me.schemeAgencyIDField
    End Get
    Set
        Me.schemeAgencyIDField = Value
    End Set
End Property


Public Property schemeAgencyName() As String
    Get
        Return Me.schemeAgencyNameField
    End Get
    Set
        Me.schemeAgencyNameField = Value
    End Set
End Property


Public Property schemeVersionID() As String
    Get
        Return Me.schemeVersionIDField
    End Get
    Set
        Me.schemeVersionIDField = Value
    End Set
End Property


Public Property schemeDataURI() As String
    Get
        Return Me.schemeDataURIField
    End Get
    Set
        Me.schemeDataURIField = Value
    End Set
End Property



Public Property schemeURI() As String
    Get
        Return Me.schemeURIField
    End Get
    Set
        Me.schemeURIField = Value
    End Set
End Property


Public Property Value() As String
    Get
        Return Me.valueField
    End Get
    Set
        Me.valueField = Value
    End Set
End Property

Конечный класс

0
задан 17.11.2016, 18:47
2 ответа

Я иду отвечать самому себе, хотя todavГ - в не встречу soluciГіn он завершает ее.

PondrГ© пример:

Dim str As String = "<Usuarios>
                     <Usuario>
                     <IdUsuario Value=""EMLL"" Length=""12"" > </IdUsuario>     
                     <Pass Value=""654321"" Length=""5"" ></Pass>
                     </Usuario>
                     <Usuario>
                     <IdUsuario Value=""HJA"" Length=""12""></IdUsuario>
                     <Pass Value=""92092kj"" Length=""12""></Pass>
                     </Usuario>
                     </Usuarios>"

 Dim _Usuarios As UsersModel

 Dim serializer As New XmlSerializer(GetType(UsersModel))
 Using reader As TextReader = New StringReader(str)
     _Usuarios = serializer.Deserialize(reader)
 End Using

следующим является соответствующий класс, чтобы реализовывать deserializacion, если кто-то нравится достигать, как добавление в это, как осуществление этого с префиксами и именем места, за него ей благодарен.: '0

Imports System.Xml.Serialization

    <Serializable(), XmlRoot("Usuarios")>
    Public Class UsersModel
        <XmlElement("Usuario")> Property Usuarios As New List(Of UserModel)
    End Class

    <Serializable()>
    Public Class UserModel

        Public Property IdUsuario As UsuarioID
        Public Property Pass As Password

    End Class

    <System.Xml.Serialization.XmlTypeAttribute>
    Partial Public Class UsuarioID
        <System.Xml.Serialization.XmlAttributeAttribute()>
        Public Property Length As String
        <System.Xml.Serialization.XmlAttributeAttribute()>
        Public Property Value As String
    End Class

    <System.Xml.Serialization.XmlTypeAttribute>
    Partial Public Class Password
        <System.Xml.Serialization.XmlAttributeAttribute()>
        Public Property Length As String
        <System.Xml.Serialization.XmlAttributeAttribute()>
        Public Property Value As String
    End Class
0
ответ дан 24.11.2019, 13:03

Ну, уже мне удалось сделать то, что он искал, с ними прошла информация по, если кто-то больше ничего не знает из Xml как меня ajajaja.

Dim XMLResponse As New System.Xml.XmlDocument
XMLResponse.LoadXml(ElementBod.OuterXml)
Dim NameSpace As New XmlSerializerNamespaces
NameSpace.Add("ns", "http://www.starstandard.org/STAR/5")
Dim StrWriter As New StringWriter
Dim serializer As New XmlSerializer(type:=GetType(ClaseDelElemento))

Using reader As TextReader = New 
StringReader(XMLResponse.GetElementsByTagName("ns:NombreElemento").Item(0).OuterXml)
 serializer.Serialize(StrWriter, ObjetoDelElemento, NameSpace)
 ObjetoDelElemento = serializer.Deserialize(reader)
End Using

ClaseDelElemento = Класс, который содержит информацию, которую ты хочешь deserializar, XML.

ObjetoDelElemento = Инстанция ClaseDelElemento

ElementBod = Xml, которые посылают мне WebService.

В этом я вступаю в брак я получаю Xml внутри SoapRequest, и это у меня есть, что deserializar, из-за которого я не знаю, правилен ли он не создавать StringWriter, так как я это не использую, также не знаю, необходимо ли заявление namespace, оно однако функционирует xP и - то, что я занимаю, привет.

0
ответ дан 24.11.2019, 13:03

Теги

Похожие вопросы