Ich habe ein benutzerdefiniertes Attribut:Methoden finden, die benutzerdefinierte Attribut mit Reflexion
public class MenuItemAttribute : Attribute
{
}
und eine Klasse mit ein paar Methoden:
public class HelloWorld
{
[MenuItemAttribute]
public void Shout()
{
}
[MenuItemAttribute]
public void Cry()
{
}
public void RunLikeHell()
{
}
}
Wie kann ich nur die Methoden erhalten, die mit verziert werden das benutzerdefinierte Attribut?
Bisher habe ich dies:
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();
}
}
}
Was ich jetzt brauchen, ist die Methode Namen zu erhalten, den Rückgabetyp, sowie die Parameter sie akzeptiert.
tue ich es ass-about-Front hier? Ursache jetzt suche ich nach allen Attributen und ich versuche dann und die zugehörige Methode –
genug mit meinem Code ich bekomme 2 Ergebnisse, aber mit Ihrem Beispiel bekomme ich 0 ..... –
Ich versuchte es mit Ihren Klassen; Für mich geht das. Suchen Sie die richtige Baugruppe? – SLaks