CustomReflectionContext Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa un contexto de reflexión personalizable.
public ref class CustomReflectionContext abstract : System::Reflection::ReflectionContext
public abstract class CustomReflectionContext : System.Reflection.ReflectionContext
type CustomReflectionContext = class
inherit ReflectionContext
Public MustInherit Class CustomReflectionContext
Inherits ReflectionContext
- Herencia
- Derivado
Comentarios
CustomReflectionContext proporciona una manera de agregar o quitar atributos personalizados de objetos de reflexión, o agregar propiedades ficticias a esos objetos, sin volver a implementar el modelo de reflexión completo. El valor predeterminado CustomReflectionContext simplemente envuelve los objetos de reflexión sin hacer ningún cambio, pero al crear subclases y sobrescribir los métodos pertinentes, puede añadir, quitar o cambiar los atributos que se aplican a cualquier parámetro o miembro reflejado, o añadir nuevas propiedades a un tipo reflejado.
Por ejemplo, supongamos que el código sigue la convención de aplicar un atributo determinado a los métodos de fábrica, pero ahora es necesario trabajar con código de terceros que carece de atributos. Puede usar CustomReflectionContext para especificar una regla para identificar los objetos que deben tener atributos y dotar a los objetos de esos atributos cuando se accede a ellos desde su código.
Para usar CustomReflectionContext eficazmente, el código que usa los objetos reflejados debe admitir la noción de especificar un contexto de reflexión, en lugar de suponer que todos los objetos reflejados están asociados al contexto de reflexión en tiempo de ejecución. Muchos métodos de reflexión de .NET proporcionan un ReflectionContext parámetro para este propósito.
Para modificar los atributos que se aplican a un parámetro o miembro reflejados, invalide el GetCustomAttributes(ParameterInfo, IEnumerable<Object>) método o GetCustomAttributes(MemberInfo, IEnumerable<Object>) . Estos métodos toman el objeto reflejado y la lista de atributos en su contexto de reflexión actual y devuelven la lista de atributos que debe tener en el contexto de reflexión personalizado.
Warning
CustomReflectionContext las invalidaciones no deben consultar atributos en el proporcionado MemberInfo o ParameterInfo llamando a GetCustomAttributes; use la declaredAttributes secuencia pasada a las GetCustomAttributes sobrecargas en su lugar.
Para agregar propiedades a un tipo reflejado, invalide el AddProperties método . El método acepta un parámetro que especifica el tipo reflejado y devuelve una lista de propiedades adicionales. Debe usar el método CreateProperty para crear objetos de propiedad que se devolverán. Puede especificar delegados al crear la propiedad que actúa como descriptor de acceso de propiedad y puede omitir uno de los descriptores de acceso para crear una propiedad de solo lectura o de solo escritura. Tenga en cuenta que estas propiedades ficticias no tienen metadatos ni respaldo de lenguaje intermedio común (CIL).
Warning
- Tenga cuidado con la igualdad entre los objetos reflejados al trabajar con contextos de reflexión, ya que los objetos podrían representar el mismo objeto reflejado en varios contextos. Puede usar el MapType método para obtener una versión determinada del contexto de reflexión de un objeto reflejado.
- Un CustomReflectionContext objeto modifica los atributos devueltos por un objeto de reflexión determinado, como los obtenidos por el GetCustomAttributes método . No modifica los datos de atributo personalizados devueltos por el GetCustomAttributesData método y estas dos listas no coincidirán cuando se usa un contexto de reflexión personalizado.
En el ejemplo siguiente se demuestra cómo crear una subclase de CustomReflectionContext para agregar un atributo personalizado a todos los miembros de un tipo dado cuyos nombres comienzan con "To".
Constructores
| Nombre | Description |
|---|---|
| CustomReflectionContext() |
Inicializa una nueva instancia de la clase CustomReflectionContext. |
| CustomReflectionContext(ReflectionContext) |
Inicializa una nueva instancia de la CustomReflectionContext clase con el contexto de reflexión especificado como base. |
Métodos
| Nombre | Description |
|---|---|
| AddProperties(Type) |
Cuando se reemplaza en una clase derivada, proporciona una colección de propiedades adicionales para el tipo especificado, tal como se representa en este contexto de reflexión. |
| CreateProperty(Type, String, Func<Object,Object>, Action<Object,Object>, IEnumerable<Attribute>, IEnumerable<Attribute>, IEnumerable<Attribute>) |
Crea un objeto que representa una propiedad que se va a agregar a un tipo, que se va a usar con el AddProperties(Type) método y utilizando los atributos personalizados especificados. |
| CreateProperty(Type, String, Func<Object,Object>, Action<Object,Object>) |
Crea un objeto que representa una propiedad que se va a agregar a un tipo, que se usará con el AddProperties(Type) método . |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetCustomAttributes(MemberInfo, IEnumerable<Object>) |
Cuando se reemplaza en una clase derivada, proporciona una lista de atributos personalizados para el miembro especificado, como se representa en este contexto de reflexión. |
| GetCustomAttributes(ParameterInfo, IEnumerable<Object>) |
Cuando se reemplaza en una clase derivada, proporciona una lista de atributos personalizados para el parámetro especificado, como se representa en este contexto de reflexión. |
| GetHashCode() |
Actúa como función hash predeterminada. (Heredado de Object) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| GetTypeForObject(Object) |
Obtiene la representación del tipo del objeto especificado en este contexto de reflexión. (Heredado de ReflectionContext) |
| MapAssembly(Assembly) |
Obtiene la representación, en este contexto de reflexión, de un ensamblado representado por un objeto desde otro contexto de reflexión. |
| MapType(TypeInfo) |
Obtiene la representación, en este contexto de reflexión, de un tipo representado por un objeto de otro contexto de reflexión. |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |