Buen día me encuentro tratando de mejorar un código que hace los siguiente:
La clase ClienteHttp(B) recibe una url y devuelve un jsonArray mediante una tarea asíncrona.
Realizando esto me surgió la idea de en ves de devolver un jsonArray y parsearlo desde la clase(A)devolver de una ves el jsonArray como list<objeto>, pero para poder hacer esto necesito enviarle como parámetro al constructor de la clase el tipo de objeto que quiero que me devuelva en la lista, la pregunta es ¿como puedo enviar como parámetro del constructor un objeto que puede ser cualquier objeto?
Este es el código actual:
/*-------------------Tarea Asincrona para lectura de Jsons-----------------*/ public async Task<JArray> lectorJsons(string url) { JArray json = new JArray(); try { // hiloEnEjecucion = true;//Bloqueamos para evitar la ejecucion de multiples hilos HttpClient client = new HttpClient();//Cliente de conexión http /*leemos el resultado de la consulta*/ Task<string> getStringTask = client.GetStringAsync(url); string jsonStr = await getStringTask;//espera a tener un resultado /*Declaramos el json y lo parseamos con el resultado*/ json = JArray.Parse(jsonStr); } catch (Exception error) { // txLog.Text = error.Message + " Revise su conexión"; } /*retornamos json de resultado*/ return json; }Y esto es lo que quiero lograr, ya investigue pero no eh encontrado nada al respecto y pienso que puede ser muy útil
public class ClienteHttp { /*Objeto objeto*/ ClienteHttp(/*Objeto objeto*/) { /*this.objeto = objeto*/ } public async Task<List</*objeto*/>> lectorJsons(string url) { JArray json = new JArray(); try { HttpClient client = new HttpClient();//Cliente de conexión http Task<string> getStringTask = client.GetStringAsync(url); string jsonStr = await getStringTask;//espera a tener un resultado json = JArray.Parse(jsonStr); } catch (Exception error) { // txLog.Text = error.Message + " Revise su conexión"; } /*retornamos json de resultado*/ return json.ToObject<List</*objeto*/>>(); ; } }De antemano gracias por su ayuda.
Alvaro Fabian M:.