2009-07-22 13 views
5

¿Existe alguna biblioteca (como proyectos de código abierto, etc.) que facilite el uso de la reflexión compleja como crear objetos o clases sobre la marcha, inspeccionar instancias, etc.?C# Biblioteca para una fácil reflexión dinámica

Gracias

+0

¿Quiere decir, además de los tipos en el espacio de nombres System.Reflection? –

+0

Sí, algo así como un envoltorio alrededor de ellos para facilitar la tarea de realizar las tareas de reflexión más difíciles – pistacchio

+0

¿Puedes describir algunas de estas 'tareas de reflexión difíciles'? – Trap

Respuesta

4

hay un LinFu biblioteca disponible que puede hacer lote demás cosas interesantes que la reflexión ... probarlo

0

El montaje de prueba de la unidad MS tiene PrivateObject y PrivateType que hacen que el acceso a la instancia/tipo privado miembros bastante directos.

+0

Aunque, usar esta prueba externa es una idea horrible, horrible ... –

+0

Es solo un envoltorio de lo que puedes hacer a través de la reflexión, por lo que no es nada especial, pero estoy de acuerdo en que no debes meterse con cosas privadas en instancias/tipos. –

2

En mi opinión, no creo que el reflejo pueda ser más fácil de usar de lo que es ahora. Casi toda la funcionalidad principal está incluida dentro de la clase Type. Simplemente tómese su tiempo para aprender cómo funciona y no necesitará otra capa innecesaria encima.

En concreto, se puede hacer 'cosas' complejas como la creación de objetos no inicializado como esto:

// Instantiates an uninitialized object of the specified type. 
var newObject = (MyObject)FormatterServices.GetUninitializedObject(elementType); 
+0

Bueno, algo de almacenamiento en caché (de la información obtenida por reflexión) sería bueno. La reflexión es bastante lenta y recuperar el mismo 'MethodInfo's o' FieldInfo's repetidamente es un recurso de cerdo. (Sé que tu respuesta es bastante antigua ...) –

1

La reflexión es, por definición, difícil. Es un nivel de indirección colocado sobre toda la estructura del objeto. No estoy seguro de cómo puedes hacerlo más fácil, sin limitar su poder.

1

Si la reflexión es difícil, entonces es posible que no tenga una comprensión completa de los principios básicos de .Net. Es posible que desee probar un tutorial como this.

Cuestiones relacionadas