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,
??? }
}
原文:https://www.cnblogs.com/AlinaL/p/13156577.html