Puedo usar TypeDescriptor.AddAttributes para agregar un atributo a un tipo en tiempo de ejecución. ¿Cómo hago lo mismo para un método y parámetro? (tal vez 2 preguntas separadas ...)Agregar un atributo mediante programación a un método o parámetro
Respuesta
TypeDescriptor.AddAttributes
solo afecta a muy specific use-case; es decir, desde dentro de System.ComponentModel
. Para el resto de reflexión, sabe nada sobre el atributo adicional. Y, de hecho, System.ComponentModel
realmente no se aplica a los métodos o parámetros.
Así que en resumen; no puedes Tendrá que almacenar esta información en otro lugar (a medida), o agregarla en tiempo de compilación.
Como veo al analizar la clase TypeDescriptor
en Reflector, el método .AddAttributes
llama internamente al método .AddProvider
. La instancia TypeDescriptionProvider
que se le transfirió es en realidad responsable de proporcionar los metadatos. Podría intentar agregar el atributo [TypeDescriptionProviderAttribute] a su clase e implementar su propio proveedor derivando de la clase TypeDescriptionProvider
. Como dice la documentación, anulando TypeDescriptionProvider.CreateInstance
, podría proporcionar un objeto sustituto cuyo tipo tenga todos los atributos necesarios. Sospecho que los atributos aplicados a los métodos dentro del tipo de sustitución también tendrán efecto. Sin embargo, no lo he intentado yo mismo, así que siéntase libre de experimentar ...
- 1. Cómo agregar un atributo mediante programación
- 2. Agregar botones mediante programación a un fragmento
- 3. agregar un UITableView mediante programación a un UIViewController
- 4. Cómo agregar mediante programación de texto a un UIView
- 5. Agregar celdas mediante programación a UITableView
- 6. Agregar una biblioteca mediante programación a un proyecto de Eclipse
- 7. Android: agregar botones mediante programación a un diseño
- 8. Agregar PageControl mediante programación
- 9. Cómo agregar controles mediante programación a un formulario en VB.NET
- 10. Cómo hacer referencia a un método en el parámetro atributo
- 11. Cómo agregar vistas a vistas mediante programación
- 12. ¿Agregar ScriptManager a la página mediante programación?
- 13. Agregar recursos a Jetty mediante programación
- 14. Agregar un atributo a un elemento JAXB
- 15. Agregar un certificado de confianza mediante programación en Java
- 16. agregar mediante programación gatillo estilo
- 17. Agregar un nuevo usuario de subversión mediante programación con C#
- 18. cómo falsificar mediante programación un evento táctil a un UIButton?
- 19. asignar un atributo mediante getattr
- 20. Sintaxis para aplicar un atributo a un método anónimo
- 21. Cómo agregar lista de balas mediante programación a NSTextView
- 22. aumentar mediante programación un comando
- 23. Cómo agregar una referencia mediante programación
- 24. ¿Cómo agrego un archivo a una solución mediante programación?
- 25. Agregar atributo a un objeto en PHP
- 26. Cómo agregar/quitar la referencia mediante programación?
- 27. ¿Cómo agregar un parámetro a la URL?
- 28. Agregar un parámetro a la URL actual
- 29. crear mediante programación un UILabel
- 30. Agregar varios botones a una vista mediante programación, llamar al mismo método, determinar qué botón era
¿En qué situaciones desea que aparezcan los atributos? – SLaks
Para la reflexión, por lo tanto noté incluso que TypeDescriptor.AddAttribute no funciona para eso. – MatteS