Można użyć TypeDescriptor.AddAttributes, aby dodać atrybut do typu w środowisku wykonawczym. Jak zrobić to samo dla metody i parametru? (może 2 oddzielne pytania ...)Programowo dodaj atrybut do metody lub parametru
Odpowiedz
TypeDescriptor.AddAttributes
dotyczy tylko konkretnego przypadku użycia bardzo konkretny; tj. z zakresu od System.ComponentModel
. Dla odbicia reszta wie, nic o tym, że o dodatkowy atrybut. I rzeczywiście, System.ComponentModel
tak naprawdę nie ma zastosowania do metod lub parametrów.
Krótko mówiąc; nie możesz. Będziesz musiał przechowywać te informacje w innym miejscu (na zamówienie) lub dodać je podczas kompilacji.
Jak wynika z analizy klasy TypeDescriptor
w odbłyśniku, metoda .AddAttributes
wewnętrznie wywołuje metodę .AddProvider
. Przesłana do niej instancja TypeDescriptionProvider
jest faktycznie odpowiedzialna za dostarczanie metadanych. Możesz spróbować dodać atrybut [TypeDescriptionProviderAttribute] do swojej klasy i zaimplementować własnego dostawcę, korzystając z klasy TypeDescriptionProvider
. Zgodnie z dokumentacją, poprzez przesłonięcie TypeDescriptionProvider.CreateInstance
, można podać zastępczy obiekt, którego typ ma wszystkie niezbędne atrybuty. Podejrzewam, że atrybuty zastosowane do metod wewnątrz typu substytucji również zostaną uwzględnione. Jednak nie próbowałem tego samemu, więc możesz eksperymentować ...
- 1. Spring MVC: atrybut żądania wiązania do parametru metody kontrolera
- 2. Dodaj atrybut css do elementu
- 3. Dodaj atrybut do klasy Pythona
- 4. dodaj niestandardowy atrybut lub metadane do pliku java
- 5. Programowo dodaj obramowanie do LinearLayout
- 6. LINQ do SQL - nie Dodaj metody Dodaj
- 7. Dodaj MenuItem do Menu w konkretnej pozycji lub grupy programowo
- 8. Magento - Dodaj atrybut do encji klienta
- 9. wywołanie atrybut onclick programowo
- 10. Dodaj do początku metody NSString
- 11. Dodaj nowy atrybut do krawędzi w siecix
- 12. Dodaj atrybut klasy do formularza Błędy
- 13. Odoo - dodaj niestandardowy atrybut pola?
- 14. Dodaj atrybut przy użyciu xmllint
- 15. Dodaj programowo szablon kodu Java
- 16. Jak przekazać ArrayList do parametru metody varargs?
- 17. Automapper: przekazanie parametru do metody Map
- 18. Dodaj tekst do obrazu w Androidzie programowo
- 19. Argument atrybut musi być stałym wyrażeniem, typeof ekspresji lub tworzenia tablicy wyrażenia typu parametru atrybut
- 20. Warunkowo dodaj atrybut elementu w knockout.js
- 21. Magento: Programowo usuń atrybut z zestawu atrybutów
- 22. Dodawanie metody Dodaj do tablicy ActiveRecord
- 23. JavaScript, programowo dodaj zdarzenie onclick
- 24. html "teleinformatyczny" jako atrybut javascript parametru
- 25. Magento API V2 - dodaj dodatkowy atrybut do odpowiedzi API
- 26. Gradle Android Plugin - dodaj niestandardowy atrybut smaku?
- 27. Dodaj UITextField na UIView programowo
- 28. Dodaj UIScrollView w UIView programowo
- 29. Ref atrybut lub atrybut Wpisz XSD
- 30. Dodaj atrybut "zaznaczone" w jquery kliknięcia
W jakich sytuacjach chcesz wyświetlać atrybuty? – SLaks
Do refleksji, stąd zauważyłem, że nawet TypeDescriptor.AddAttribute nie działa na to. – MatteS