je demanderai à ce mal, mais peut/comment pouvez-vous trouver des champs sur une classe en elle-même ... par exemple ...C# Réflexion: Trouver des attributs sur un champ membre
public class HtmlPart {
public void Render() {
//this.GetType().GetCustomAttributes(typeof(OptionalAttribute), false);
}
}
public class HtmlForm {
private HtmlPart _FirstPart = new HtmlPart();
[Optional] //<-- how do I find that?
private HtmlPart _SecondPart = new HtmlPart();
}
Ou peut-être que je Je fais juste cela de façon incorrecte ... Comment puis-je appeler une méthode et ensuite vérifier les attributs appliqués à elle-même?
En outre, à cause de la question - Je suis juste curieux de savoir s'il était possible de trouver des informations d'attribut sans savoir/accéder à la classe parente!
Remerciements - Cela semblait "possible", mais là encore, je me suis dit qu'il manquait juste assez pour que ça ne marche pas. – Hugoware
Non, la méthode Render peut parfaitement accéder à typeof (HtmlForm) au lieu de obj.GetType(), alors vous n'avez plus besoin de l'obj. Bien sûr, si HtmlForm lui-même était privé, alors vous pourriez avoir besoin de le trouver à travers Assembly.GetExecutingAssembly(). GetTypes(). Où (t =>! T.IsGeneric &&! T.IsNested && t.FullName == "MyNamespace. HtmlForm ") ou quelque chose comme ça. – Timwi