1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
using System;
using System.Reflection;
namespace MonoBug
{
public class Program
{
static private int Main(string[] args)
{
Assembly assembly = Assembly.GetExecutingAssembly ();
Type type = assembly.GetType("MonoBug.Program", true);
MethodInfo info = type.GetMethod("Foo");
object[] attributes = info.GetCustomAttributes (false);
int found = 0;
foreach (object obj in attributes)
{
Console.WriteLine("Attribute of type {0} found", obj.GetType().ToString());
found ++;
}
return found == 1? 0: 1;
}
[My("blah", new string[] { "crash" }, "additional parameter")]
public void Foo()
{
}
}
[AttributeUsage(AttributeTargets.Method)]
class MyAttribute : Attribute
{
public MyAttribute(params object[] arguments)
{
}
}
}
|