Hola!

A todos aquellos para los cuales la tecnología es una pasión, el presente Post
esta dedicado a System.Reflection, métodos extensores,
Generics <T> Tipos Anónimos en .NET
los cuales permiten
extender objetos de .NET framework y los objetos propios existententes en el
contexto dentro de nuestras aplicaciones.

Muchas veces el termino “Reflection” suena muy raro, pero para nada, esto es
simplemente necesariao y extremadamente poderoso. Nos permitirá trabajar dinámicamente
con objetos creados en .NET para el caso que se quiere exponer a través del
actual documento. Reflection nos permite entre otras cosas recuperar tipos,
nombre de propiedades, por ejemplo, para agregar funcionalidad, para establecer
enlaces entre X objeto con Y objeto y además para trabajar dinámicamente con
dichos objetos valga “tanta redundancia”.

Por medio de un ejemplo vamos a comprender y repasar los conceptos de:

1 – Reflection

2 – Método extensores

3 – Generics Tipos <T >

Para empezar vamos a enunciar el problema: “Se quiere extender el objeto
DataTable perteneciente  a ADO.NET enmarcado dentro del namespace System.Data,                                                                                                                                                                                              de forma tal que tengamos definido   un método el cual nos permita Convertir un  DataTable de forma inmediata a un
List<T> en donde T es un tipo definido y enmarcado en una clase creada por el desarrollador y la cual llamaremos el “espejo”, además
se debe crea un método el cuál permita extender el objeto DataTable y poderlo
convertir inmediatamente a un tipo XDocument(Xml)”.

Manos a la obra, esta primer parte repasaremos lo que son los métodos extensores:

1 – Crear un proyecto de tipo consola en VS2010.

Ingphillip

2 – Agregar una clase la a nuestra solución  la cual llamaremos HelperConverterExtender, y cabe aclarar, el nombre no tiene absolutamente nada que ver con la funcionalidad que vamos a implementar.

Ingphillip

3 – Para efectos de sintaxis la clase debe quedar definida en forma estatica, clases las cuales no son en su totalidad recomendables pero para efectos de extender objetos funcionará perfectamente y así podremos definir dentro de dicha clase métodos los cuales permitiran extender los objetos tipo DataTable u otros objetos que necesitemos extender.

Ingphillip

4 – Empecemos por saber cómo debemos definir un método para poder extender X objeto.

Ingphillip

Ingphillip

Hasta quí no hemos hablado aún nada de Reflection, sólo se ha declarado lo que es la definición de un método extensor de X objeto  en nuestro caso un DataTable.

5 – Creando un método extensor el cual permita crear un XDocument (XML) a partir de un DataTable.

Ingphillip

Ingphillip

De esta forma hemos dotado al objeto de tipo DataTable de funcionalidad para que este mismo se convierta a XML.

Anuncios

Páginas: 1 2