У меня есть веб-служба, которая получает 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
Конечный класс
Я иду отвечать самому себе, хотя 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
Ну, уже мне удалось сделать то, что он искал, с ними прошла информация по, если кто-то больше ничего не знает из 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 и - то, что я занимаю, привет.