none
Usar Linq para convertir un dataset a una lista de objetos RRS feed

  • Pregunta

  • Buenos dias, tengo la siguiente duda, tengo un metodo que me recibe un dataset y un tipo de datos con esto yo convierto el dataset en una lista generica de objetos, quiero mejorar esta rutina pues me parece que me esta demorando algunos procesos, a continuacion la rutina:

    public static List<Object> DatasetBDToObjectList(DataSet ds, Type objectType) { List<Object> listaObjects = new List<Object>(); string nombreObject = objectType.Name; string xml = ds.GetXml().Replace("Table", nombreObject); using (XmlReader reader = XmlReader.Create(new StringReader(xml))) { while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.Name.Equals(nombreObject)) { Object objeto = new Object(); objeto = Deserialize(reader.ReadOuterXml(), objectType); listaObjects.Add(objeto); } } } return listaObjects; }

     public static object Deserialize(string input, Type objectType)
            {
                object output = null;
                if (!input.Equals(string.Empty))
                {
                    StringReader objReader = new StringReader(input);
                    XmlSerializer objSerializer = new XmlSerializer(objectType);
                    output = objSerializer.Deserialize(objReader);
                }
                else
                {
                    output = objectType.GetConstructor(new Type[] { }).Invoke(new object[] { });
                }
                return output;
            }

    Les agradezco cualquier colaboracion para mejorar este metodo, he intentado con Linq pero no he avanzado mucho.

    Muchas gracias por su ayuda.


    jin


    • Cambiado Leandro TuttiniMVP jueves, 27 de diciembre de 2012 17:14 (De:Lenguaje C#)
    • Editado jorgek lunes, 28 de enero de 2013 21:24
    jueves, 27 de diciembre de 2012 16:59