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
 

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

Preguntas similares