Llamar al metodo de una clase que usa genericos desde un metodo que no los usa

07/08/2007 - 22:16 por Rodrigo Juarez | Informe spam
Hola

Tengo una clase que no usa generics y necesito llamar a un metodo que si los
usa, el tema es que no se como especificar el tipo del generico

Aca va un breve ejemplo:

public override bool SalvarObjetos(object pBO, ref ValidationResults
pResults, string pOperacion)

{

pResults = Validation.Validate< ACA VA EL TIPO DE pBO PERO NO SE COMO
ESPECIFICARLO>(pBO);

bool _valido = pResults.IsValid;

if (_valido)

{

int _idSession = ProcesoIniciar();

_valido = SalvarObjetos(_idSession, pBO);

if (_valido) CrearLogging<ACA VA EL TIPO DE pBO PERO NO SE COMO
ESPECIFICARLO>(_idSession, pBO, pOperacion);

ProcesoFinalizar(_idSession);

}

return _valido;

}

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
08/08/2007 - 10:48 | Informe spam
"Rodrigo Juarez" wrote in message
news:%23dSnf$
pResults = Validation.Validate< ACA VA EL TIPO DE pBO PERO NO SE COMO
ESPECIFICARLO>(pBO);



El tipo se escribe directamente, por ejemplo, si quieres que Validate
opere sobre strings, se pone Validation.Validate<String>(...). Obviamente,
el tipo concreto que hay que pasar depende de qué es lo que hace la función
Validate, y cómo utiliza ese parámetro.
Respuesta Responder a este mensaje
#2 Rodrigo Juarez
08/08/2007 - 15:09 | Informe spam
Gracias por responeder!

El tema es que necesito pasarle el tipo del cual es pBO, que puede ser por
ejemplo, cliente, pero no se de antemano que tipo viene, por eso lo
especifico como object


"Alberto Poblacion"
escribió en el mensaje news:%
"Rodrigo Juarez" wrote in message
news:%23dSnf$
pResults = Validation.Validate< ACA VA EL TIPO DE pBO PERO NO SE COMO
ESPECIFICARLO>(pBO);



El tipo se escribe directamente, por ejemplo, si quieres que Validate
opere sobre strings, se pone Validation.Validate<String>(...). Obviamente,
el tipo concreto que hay que pasar depende de qué es lo que hace la
función Validate, y cómo utiliza ese parámetro.


Respuesta Responder a este mensaje
#3 Alberto Poblacion
09/08/2007 - 08:58 | Informe spam
"Rodrigo Juarez" wrote in message
news:
El tema es que necesito pasarle el tipo del cual es pBO, que puede ser por
ejemplo, cliente, pero no se de antemano que tipo viene, por eso lo
especifico como object



Ah, no, no vas a poder. Los Generics requieren que el tipo que se pasa
sea conocido en tiempo de compilación, así que no te sirven si el tipo viene
dentro de un Object y no lo conoces hasta el momento de la ejecución.
Tendrías que hacer que tu rutina "SalvarObjetos" (la que llama al Generic)
fuera también de tipo Generic y recibiese el Tipo del objeto (en lugar de un
Object), y lo mismo con el llamante de ésta y asi sucesivamente hasta llegar
al lugar en el que se pasa inicialmente el objeto de tipo conocido
(cliente).
Respuesta Responder a este mensaje
#4 Rodrigo Juarez
10/08/2007 - 15:23 | Informe spam
Lo pude solucionar, no pasando el tipo, el cual es inferido segun el tipo
del parametro que le estas pasando ...

es decir, si el metodo es:

Salvar<T>(T pbo)

Lo puedo llamar como:
Cliente _bo = new Cliente("Rodrigo Juarez");
Salvar(_bo);

Es decir, que en todas las llamadas posteriores no pase el tipo, y anduvo

Saludos!!

"Alberto Poblacion"
escribió en el mensaje news:%
"Rodrigo Juarez" wrote in message
news:
El tema es que necesito pasarle el tipo del cual es pBO, que puede ser
por ejemplo, cliente, pero no se de antemano que tipo viene, por eso lo
especifico como object



Ah, no, no vas a poder. Los Generics requieren que el tipo que se pasa
sea conocido en tiempo de compilación, así que no te sirven si el tipo
viene dentro de un Object y no lo conoces hasta el momento de la
ejecución. Tendrías que hacer que tu rutina "SalvarObjetos" (la que llama
al Generic) fuera también de tipo Generic y recibiese el Tipo del objeto
(en lugar de un Object), y lo mismo con el llamante de ésta y asi
sucesivamente hasta llegar al lugar en el que se pasa inicialmente el
objeto de tipo conocido (cliente).


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