c# Attribute 特性

2021-01-19  本文已影响0人  独步江雪

https://www.cnblogs.com/zhaoyl9/p/12027938.html

using System;
using System.Linq;
using System.Reflection;
using System.Reflection.Emit;

namespace ConsoleApp
{
    class ValidatorAttribute : Attribute
    {
        public bool use = false;
    }

    class Test
    {
        [ValidatorAttribute(use = true)] public string a = "aa";
        [ValidatorAttribute(use = false)] public string b = "bb";
        public string c = "cc";
    }

    class Program
    {
        static void Main(string[] args)
        {
            var t = new Test();

            foreach (var e in t.GetType().GetFields())
            {
                var attrs = e.GetCustomAttributes().Where(e1 => (e1 as ValidatorAttribute) != null).ToList();
                if (attrs.Any())
                {
                    Console.WriteLine($"{e.Name} use valid :{((ValidatorAttribute) attrs[0]).use}");
                }
                else
                {
                    Console.WriteLine($"{e.Name} use valid :null");
                }
            }
        }
    }
}
上一篇 下一篇

猜你喜欢

热点阅读