博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
特性(Attribute)
阅读量:5225 次
发布时间:2019-06-14

本文共 2732 字,大约阅读时间需要 9 分钟。

1.枚举获取特性,转换值

using System;using System.Reflection;namespace MyAttribute{    public static class HelloExtesion    {        public static string GetStr(this Enum e)        {            Type type = typeof(UserState);            FieldInfo p = type.GetField(e.ToString());            if (p.IsDefined(typeof(CSAttribute), true))            {                CSAttribute cs = p.GetCustomAttribute(typeof(CSAttribute)) as CSAttribute;                return cs.Name;            }            else            {                return e.ToString();            }        }    }    public enum UserState    {        [CS("富人")]        Rich = 1,        [CS("一般人")]        Normal = 2,        //[CS("穷人")]        Poor = 3,    }    public class CSAttribute : Attribute    {        public string Name { set; get; }        public CSAttribute(string Name)        {            this.Name = Name;        }    }}
View Code

 

2.特性验证字段格式

using HomeWork1.AttributeModels;using System;using System.Reflection;namespace HomeWork1.Tool{    public static class ValidateTool    {        public static void ValidateEntity
(this T t) where T : class { Type type = typeof(T); foreach (var prop in type.GetProperties()) { if(prop.IsDefined(typeof(AbstractAttribute),true)) { foreach (AbstractAttribute item in prop.GetCustomAttributes(typeof(AbstractAttribute))) { string s = item.Validate(prop.GetValue(t)); if (!string.IsNullOrEmpty(s)) { throw new Exception($"{prop.GetChinese()}({prop.Name}):{s}"); } } } } } public static string GetColumnName(this PropertyInfo Prop) { if (Prop.IsDefined(typeof(ColumnAttribute), true)) { return (Prop.GetCustomAttribute(typeof(ColumnAttribute)) as ColumnAttribute).Name; } return Prop.Name; } public static string GetTableName(this Type type) { if (type.IsDefined(typeof(TableNameAttribute), true)) { return (type.GetCustomAttribute(typeof(TableNameAttribute)) as TableNameAttribute).Name; } return type.Name; } public static string GetChinese(this PropertyInfo Prop) { if (Prop.IsDefined(typeof(ChineseAttribute), true)) { return (Prop.GetCustomAttribute(typeof(ChineseAttribute)) as ChineseAttribute).Name; } return Prop.Name; } }}
View Code

 

转载于:https://www.cnblogs.com/Jacob-Wu/p/9301843.html

你可能感兴趣的文章
SparkR-Install
查看>>
使用Zxing来实现二维码扫描
查看>>
反向Ajax,实现服务器向客户端推送消息之 Comet
查看>>
Webshell实现与隐藏探究
查看>>
2、用户管理
查看>>
LeetCode OJ 42. Trapping Rain Water
查看>>
安装Apache(win7)
查看>>
山峰(codevs 1531)
查看>>
有关从经典部署模型迁移到 Azure Resource Manager 部署模型的常见问题
查看>>
Osclass-3.6.1 (Openlogic CentOS 7.2)
查看>>
如何在 Azure 虚拟机里配置条带化
查看>>
C++入门经典-例2.6-简单用cout输出字符
查看>>
DOS命令
查看>>
spring event
查看>>
【beta】Scrum站立会议第1次....11.3
查看>>
ASP.NET 中JSON 的序列化和反序列化
查看>>
博客导航目录
查看>>
jacoco书籍
查看>>
搭建个人wordpress博客(小白教程)
查看>>
修改系统默认样式
查看>>