Problema con Reflection

03/05/2006 - 18:59 por AgS | Informe spam
Hola
Ejecutando el siguiente código me está dando que "el objeto no coincide con
el tipo de destino", sin embargo la propiedad es tipo collection y lo que le
estoy pasando tambien es collection
¿Sabéis que puede estar ocurriendo?

nbEnsambladoMtto =
"E:\FuentesEmpresa\VbNet2005\Aplicacion1\A1.Aplicacion1.dll"

nombreTipo = "A1.Aplicacion1.RunMttos"
nombreMetodo="Ejecuta"

nbEnsambladoMtto = RutaNbEnsamblado
ass = Assembly.LoadFile(nbEnsambladoMtto)

nombreTipo = NbTipo
mTipo = ass.GetType(nombreTipo, True, True)
nombreMetodo = NbMetodo


If ColeValoresEntrada.Count > 0 Then
Dim Propiedad As PropertyInfo =
mTipo.GetProperty("ColeccionParametrosEntrada")
Propiedad.SetValue(mTipo, ColeValoresEntrada, Nothing)
End If

Preguntas similare

Leer las respuestas

#1 José Manuel Agüero
04/05/2006 - 15:54 | Informe spam
Hola, AgS:

No entiendo muy bien tu código, pero creo que el error está en que el método SetValue requiere un objeto del tipo NbTipo, mientras que tú le estás pasando el tipo.
Sería algo así:

'...
dim o as object = activator.createinstance(mTipo)
Propiedad.SetValue(o, ColeValoresEntrada, Nothing)
'...

O bien, si la propiedad ColeccionParametrosEntrada es estática (Shared):

'...
Propiedad.SetValue(Nothing, ColeValoresEntrada, Nothing)
'...


Saludos.


"AgS" escribió en el mensaje news:
| Hola
| Ejecutando el siguiente código me está dando que "el objeto no coincide con
| el tipo de destino", sin embargo la propiedad es tipo collection y lo que le
| estoy pasando tambien es collection
| ¿Sabéis que puede estar ocurriendo?
|
| nbEnsambladoMtto =
| "E:\FuentesEmpresa\VbNet2005\Aplicacion1\A1.Aplicacion1.dll"
|
| nombreTipo = "A1.Aplicacion1.RunMttos"
| nombreMetodo="Ejecuta"
|
| nbEnsambladoMtto = RutaNbEnsamblado
| ass = Assembly.LoadFile(nbEnsambladoMtto)
|
| nombreTipo = NbTipo
| mTipo = ass.GetType(nombreTipo, True, True)
| nombreMetodo = NbMetodo
|
|
| If ColeValoresEntrada.Count > 0 Then
| Dim Propiedad As PropertyInfo =
| mTipo.GetProperty("ColeccionParametrosEntrada")
| Propiedad.SetValue(mTipo, ColeValoresEntrada, Nothing)
| End If
Respuesta Responder a este mensaje
#2 AgS
04/05/2006 - 16:23 | Informe spam
Muchas gracias, ese era el problema.

"José Manuel Agüero" escribió:

Hola, AgS:

No entiendo muy bien tu código, pero creo que el error está en que el método SetValue requiere un objeto del tipo NbTipo, mientras que tú le estás pasando el tipo.
Sería algo así:

'...
dim o as object = activator.createinstance(mTipo)
Propiedad.SetValue(o, ColeValoresEntrada, Nothing)
'...

O bien, si la propiedad ColeccionParametrosEntrada es estática (Shared):

'...
Propiedad.SetValue(Nothing, ColeValoresEntrada, Nothing)
'...


Saludos.


"AgS" escribió en el mensaje news:
| Hola
| Ejecutando el siguiente código me está dando que "el objeto no coincide con
| el tipo de destino", sin embargo la propiedad es tipo collection y lo que le
| estoy pasando tambien es collection
| ¿Sabéis que puede estar ocurriendo?
|
| nbEnsambladoMtto =
| "E:\FuentesEmpresa\VbNet2005\Aplicacion1\A1.Aplicacion1.dll"
|
| nombreTipo = "A1.Aplicacion1.RunMttos"
| nombreMetodo="Ejecuta"
|
| nbEnsambladoMtto = RutaNbEnsamblado
| ass = Assembly.LoadFile(nbEnsambladoMtto)
|
| nombreTipo = NbTipo
| mTipo = ass.GetType(nombreTipo, True, True)
| nombreMetodo = NbMetodo
|
|
| If ColeValoresEntrada.Count > 0 Then
| Dim Propiedad As PropertyInfo =
| mTipo.GetProperty("ColeccionParametrosEntrada")
| Propiedad.SetValue(mTipo, ColeValoresEntrada, Nothing)
| End If

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida