Gets all the custom attributes defined on this parameter.
using System;
using System.Reflection;
[AttributeUsage(AttributeTargets.Parameter)]
public class MyAttribute : Attribute
{
private string myName;
public MyAttribute(string name)
{
myName = name;
}
public string Name
{
get
{
return myName;
}
}
}
public class MyClass1
{
public void MyMethod([MyAttribute("This is an example parameter attribute")]int i)
{
return;
}
}
public class MemberInfo_GetCustomAttributes
{
public static void Main()
{
Type myType = typeof(MyClass1);
MethodInfo[] myMethods = myType.GetMethods();
for(int i = 0; i < myMethods.Length; i++)
{
ParameterInfo[] myParameters = myMethods[i].GetParameters();
if (myParameters.Length > 0)
{
Console.WriteLine(myMethods[i]);
for(int j = 0; j < myParameters.Length; j++)
{
Object[] myAttributes = myParameters[j].GetCustomAttributes(typeof(MyAttribute), false);
if (myAttributes.Length > 0)
{
Console.WriteLine(myParameters[j].Position);
Console.WriteLine(myParameters[j].Name);
Console.WriteLine(myParameters[j].ParameterType);
for(int k = 0; k < myAttributes.Length; k++)
{
Console.WriteLine("\t{0}", myAttributes[k]);
}
}
}
}
}
}
}
Related examples in the same category