XmlInclude o SoapInclude problemas con un WebService

17/06/2005 - 00:19 por Jorge Cotillo Herrera | Informe spam
Hola a todos, tengo el siguiente problema "No se esperaba el tipo
PEBusinessEntity.BEUsuario. Utilice el atributo XmlInclude o SoapInclude para
especificar los tipos que son estáticos" lo que pasa es que he estado
investigando y me dicen que para usar un soapinclude o xmlinclude solo son
para tipos de atributos primitivos llamese string o integer, en cambio lo que
yo recibo en mi webservice es un tipo object aqui esta mi codigo:

Esta es la funcion que va a llamar al WebService.:

Function ejecutar(ByVal objeto As Object) As Boolean Implements
IAccion.IAccion.ejecutar


If objeto.getSetAccion = "AccionLogueoWS" Then
Dim WS As New ProyeccionWS.ProyeccionWS()
If (WS.Seguridad(objeto)) Then

End If
Return True
End If

Este es el código en mi WebService..:

<WebMethod(), SoapRpcMethod(), SoapInclude(GetType(Object))> _
Public Function Seguridad(ByVal objeto As Object) As Boolean
Seguridad = obtUsuario(objeto)
End Function

Private Function obtUsuario(ByVal objeto As Object)
Dim oracleData As PEOracleData.OracleDataPE
If (oracleData.ejecutar(objeto)) Then
Return True
Else
Return False
End If
End Function

Pero cuando lo ejecuto me sale el mismo error de q debo especificar que
objeto es, y lo que pasa es q no deseo especificar que tipo es ya que en esa
funcion puedo recibir cualquier BusinessEntity, el error de código fuente es
el siguiente en la linea 43:

Línea 41:
<System.Web.Services.Protocols.SoapRpcMethodAttribute("http://tempuri.org/Seguridad",
RequestNamespace:="http://tempuri.org/",
ResponseNamespace:="http://tempuri.org/")> _
Línea 42: Public Function Seguridad(ByVal objeto As Object) As Boolean
Línea 43: Dim results() As Object = Me.Invoke("Seguridad", New
Object() {objeto})
Línea 44: Return CType(results(0), Boolean)
Línea 45: End Function

Espero me puedan ayudar ya que lo que necesito es enviar un objeto al web
service, se puede?

Agradeceria muchisimo su ayuda.
 

Leer las respuestas

#1 kejeiri
17/06/2005 - 12:27 | Informe spam
Hola Jorge,
Supongo que el problema viene del tipo de objectos que intercambias, no
son tipos de base (String, o Int , Interger ...) ... Entonces debes
Declarar los objectos que deseas intercambiar como Serializable
(Regirados : Precede los "class" que deseas intercambiar de esa palabra
llave asi :
<Serializable()> _
Public Class MyClass
..
End Class )
Y luego haga un XmlInclude(GetType(MyClass)) justo en encima de tu
funcion de servicio Web para que puede cambiar esos objectos...
Espero que el ejemplar abajo le ayunde

WebMethod(Description:=" this is just the beginning of the jocke
:-)"), XmlInclude(GetType(MyClass1)),
XmlInclude(GetType(MyClass2)).­..., XmlInclude(GetType(MyClassN))> _
Public Function myMethod(ByVal a_myVar As String) As ArrayList

Return myList
End Function

Hasta luego
Kejeiri Mohamed Larbi

Preguntas similares