Idioma

Reflexión en .NET Framework para aplicaciones de Windows Store

.NET Framework incluye un conjunto de tipos y miembros de reflexión para su uso en aplicaciones de la Tienda Windows 8.x. Estos tipos y miembros están disponibles en el marco completo de .NET y en .NET para aplicaciones de Windows Store. En este artículo se explican las principales diferencias entre estos y sus homólogos en .NET Framework 4 y versiones anteriores.

Si vas a crear una aplicación de la Tienda de Windows 8.x, debes usar los tipos y miembros de reflexión de .NET para aplicaciones de la Tienda de Windows 8.x. Estos tipos y miembros también están disponibles, pero no necesarios, para su uso en aplicaciones de escritorio, por lo que puede usar el mismo código para ambos tipos de aplicaciones.

TypeInfo y carga de ensamblados

En .NET para aplicaciones de la Tienda de Windows 8.x, la clase TypeInfo contiene parte de la funcionalidad de la clase .NET Framework 4 Type. Un Type objeto representa una referencia a una definición de tipo, mientras que un TypeInfo objeto representa la propia definición de tipo. Esto le permite manipular Type objetos sin requerir necesariamente el tiempo de ejecución para cargar el ensamblado al que hacen referencia. Al obtener el objeto TypeInfo asociado se fuerza la carga del ensamblado.

TypeInfo contiene muchos de los miembros disponibles en Type, y muchas de las propiedades de Reflection de .NET para las aplicaciones de la Tienda Windows 8.x devuelven colecciones de objetos TypeInfo. Para obtener un TypeInfo objeto de un Type objeto , use el GetTypeInfo método .

Métodos de consulta

En .NET para aplicaciones de la Tienda de Windows 8.x, se usan las propiedades de reflexión que devuelven colecciones IEnumerable<T> en lugar de métodos que devuelven matrices. Los contextos de reflexión pueden implementar el recorrido diferido de estas colecciones para los ensamblados o tipos de gran tamaño.

Las propiedades de reflexión devuelven solo los métodos declarados en un objeto determinado en lugar de atravesar el árbol de herencia. Además, no usan BindingFlags parámetros para el filtrado. En su lugar, el filtrado tiene lugar en el código de usuario, mediante consultas LINQ en las colecciones devueltas. En el caso de los objetos de reflexión que se originan con el tiempo de ejecución (por ejemplo, como resultado de typeof(Object)), recorrer el árbol de herencia se logra mejor mediante el uso de los métodos auxiliares de la RuntimeReflectionExtensions clase . Los consumidores de objetos de contextos de reflexión personalizados no pueden usar estos métodos, y deben recorrer el árbol de herencia por su cuenta.

Restricciones

En una aplicación de Microsoft Store para Windows 8.x, el acceso a ciertos tipos y miembros del marco de trabajo .NET está restringido. Por ejemplo, no puedes llamar a métodos de .NET Framework que no se incluyen en .NET para aplicaciones de la Tienda Windows 8.x mediante un MethodInfo objeto . Además, algunos tipos y miembros que no se consideran seguros en el contexto de una aplicación de la Tienda de Windows 8.x están bloqueados, al igual que los miembros Marshal y WindowsRuntimeMarshal. Esta restricción solo afecta a los tipos y miembros de .NET Framework; puede llamar a su propio código o al de otros fabricantes como lo haría normalmente.

Consulte también