建议打断点食用
using System;
using System.Reflection;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
AnimalTypeModel testClass = new AnimalTypeModel();
Type type = testClass.GetType();
foreach (MethodInfo mInfo in type.GetMethods())
{
var ca = Attribute.GetCustomAttributes(mInfo);
CNNameAttribute thisAttr = ca[1] as CNNameAttribute;
if (thisAttr.Name == "狗")
{
Console.WriteLine(thisAttr.Name);
}
else
{
Console.WriteLine("不是狗");
}
}
}
}
public class AnimalTypeAttribute : Attribute
{
public AnimalTypeAttribute(Animal pet)
{
thePet = pet;
}
protected Animal thePet;
public Animal Pet
{
get { return thePet; }
set { thePet = value; }
}
}
/// <summary>
/// 中文名字
/// </summary>
public class CNNameAttribute : Attribute
{
public string Name { get; set; }
}
class AnimalTypeModel
{
[AnimalType(Animal.Dog), CNName( Name = "狗")]
public void DogMethod() { }
[AnimalType(Animal.Cat), CNName(Name = "猫")]
public void CatMethod() { }
[AnimalType(Animal.Bird), CNName(Name = "鸟")]
public void BirdMethod() { }
}
public enum Animal
{
// Pets.
Dog = 1,
Cat,
Bird,
}
}