J'ai un attribut personnalisé:Trouvez des méthodes qui ont attribut personnalisé à l'aide de la réflexion
public class MenuItemAttribute : Attribute
{
}
et une classe avec quelques méthodes:
public class HelloWorld
{
[MenuItemAttribute]
public void Shout()
{
}
[MenuItemAttribute]
public void Cry()
{
}
public void RunLikeHell()
{
}
}
Comment puis-je obtenir que les méthodes qui sont décorées avec l'attribut personnalisé?
Jusqu'à présent, j'ai ceci:
string assemblyName = fileInfo.FullName;
byte[] assemblyBytes = File.ReadAllBytes(assemblyName);
Assembly assembly = Assembly.Load(assemblyBytes);
foreach (Type type in assembly.GetTypes())
{
System.Attribute[] attributes = System.Attribute.GetCustomAttributes(type);
foreach (Attribute attribute in attributes)
{
if (attribute is MenuItemAttribute)
{
//Get me the method info
//MethodInfo[] methods = attribute.GetType().GetMethods();
}
}
}
Ce que je dois maintenant pour obtenir le nom de la méthode, le type de retour, ainsi que les paramètres qu'il accepte.
je le fais cul-volte-face ici? cause maintenant je cherche tous les attributs et je puis essayer et obtenir la méthode associée –
assez étrangement avec mon code, je reçois 2 résultats, mais avec votre exemple, je reçois 0 ..... –
Je l'ai essayé avec vos classes; ça marche pour moi. Cherchez-vous le bon assemblage? – SLaks