Ho un metodo con un attributo personalizzato. Se ho un delegato che si riferisce a questo metodo posso sapere se il metodo a cui fa riferimento il delegato ha o meno l'attributo?Come interrogare gli attributi del metodo tramite un delegato?
6
A
risposta
2
Non sono sicuro se questo è il caso generale, ma penso di si. Provare quanto segue:
class Program
{
static void Main(string[] args)
{
// display the custom attributes on our method
Type t = typeof(Program);
foreach (object obj in t.GetMethod("Method").GetCustomAttributes(false))
{
Console.WriteLine(obj.GetType().ToString());
}
// display the custom attributes on our delegate
Action d = new Action(Method);
foreach (object obj in d.Method.GetCustomAttributes(false))
{
Console.WriteLine(obj.GetType().ToString());
}
}
[CustomAttr]
public static void Method()
{
}
}
public class CustomAttrAttribute : Attribute
{
}
3
utilizzare il metodo della Method
di proprietà del delegato GetCustomAttributes
. Ecco un esempio:
delegate void Del();
[STAThread]
static void Main()
{
Del d = new Del(TestMethod);
var v = d.Method.GetCustomAttributes(typeof(ObsoleteAttribute), false);
bool hasAttribute = v.Length > 0;
}
[Obsolete]
public static void TestMethod()
{
}
Se il metodo ha l'attributo, var v lo conterrà; altrimenti sarà una matrice vuota.
+0
Grazie per la risposta rapida – djp
Problemi correlati
- 1. Come funzionano gli attributi del metodo Perl?
- 2. Come recuperare gli attributi del metodo di azione richiesto
- 3. Passaggio delegato come parametro del metodo
- 4. Come utilizzare parametro del metodo attributi
- 5. Metodo delegato NSURLConnection
- 6. Utilizzo del delegato Func con metodo Async
- 7. Come convertire un delegato in delegato identico?
- 8. Rails: Copia attributi da un oggetto ad un altro utilizzando gli "attributi" metodo
- 9. disiscrizione evento tramite delegato anonima
- 10. Conserva gli attributi del file in ZipFile
- 11. Come analizzare gli attributi del test con MsTest usando C#?
- 12. UICollectionView willDisplayCell metodo delegato?
- 13. alertViewShouldEnableFirstOther Il metodo del delegato del pulsante non viene chiamato
- 14. Associazione dati con gli attributi del tema
- 15. Shibboleth - Come leggere gli attributi?
- 16. Come ripetere tutti gli attributi in un elemento HTML?
- 17. Accedere gli attributi di una connessione file creato tramite file()
- 18. Come leggere gli attributi del metodo di azione in ASP.NET Core MVC?
- 19. Come ottenere gli attributi valore
- 20. Metodo delegato JQuery non funzionante
- 21. esiste un metodo delegato per uipickerview come scrollviewDidScroll?
- 22. come interrogare SQL Server tramite REST per ottenere XML
- 23. ReadRSSI non chiama il metodo delegato
- 24. Come rimuovere gli spazi bianchi dagli attributi del modello?
- 25. Come si scoprono gli attributi del modello in Rails
- 26. Come funzionano gli attributi del colore in VBO?
- 27. Esiste un metodo per trovare gli attributi modificati per gli oggetti?
- 28. Come ottenere gli attributi del nodo radice su java
- 29. consentono tutti gli attributi per gli attributi nidificati
- 30. Come elencare gli attributi del nodo XML con XML :: LibXML?
Grazie per la risposta rapida – djp