How to interrogate method attributes via a delegate?
c#
Solution
I'm not sure if this is the general case, but I think so. Try the following:
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
{
}
Problem
I have a method with a custom attribute. If I have a delegate that refers to this method can I tell if the method referred to by the delegate has the attribute or not?