c# Attribute 特性

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");
                }
            }
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容