.Net/C#---获取实体数据的 [Block(“ “)] 内容

一、在我们创建实体后通常会给他一些特性,其中就有一个相当于注释的[Block("")]特性可以给字段;

我现在给大家举个例子,方便大家理解。这个还是很实用的特别是枚举或者实体转换中文。它可以和其他方法一起使用比如for循环之类的非常简便。

二、首先我们需要几个类我现在给大家列举出来(类的名字大家根据自己意愿取)。


1、需要一个AttributeExtend类


    public class AttributeExtend
    {
        /// <summary>
        /// 获得DisplayName
        /// </summary>
        /// <param name="prop"></param>
        /// <returns></returns>
        private static string GetDisplayName(PropertyInfo prop)
        {
            if (prop.IsDefined(typeof(DisplayAttribute), true))
            {
                DisplayAttribute? display = prop.GetCustomAttribute(typeof(DisplayAttribute)) as DisplayAttribute;
                return display.DisplayName;
            }
            return prop.Name;
        }
    }

2、需要一个BlockAttribute类

        /// <summary>
        /// 块级标记器
        /// </summary>
        [AttributeUsage(AttributeTargets.Field)]
        public class BlockAttribute : Attribute
        {
            /// <summary>
            /// 
            /// </summary>
            public string DisplayName;
            /// <summary>
            /// 
            /// </summary>
            /// <param name="_displayName"></param>
            public BlockAttribute(string _displayName)
            {
                DisplayName = _displayName;
            }
        }

3、需要一个DisplayAttribute类


    /// <summary>
    /// Url地址效验验证
    /// </summary>
    [AttributeUsage(AttributeTargets.Property)]
    public class DisplayAttribute:Attribute
    {
        public string DisplayName;
        public DisplayAttribute(string _displayName)
        {
            DisplayName = _displayName;
        }
    }

里面的方法大家复制的时候出错,那我可就不管了,里面的我都测过了没有错。


三、大家在调用的时候可以这样调用比如我拿枚举举例说明

public enum VisitModuleTypeEnum
    {
        /// <summary>
        /// 其他
        /// </summary>
        [Block("其他")]
        Other = 0,
        /// <summary>
        /// 首页
        /// </summary>
        [Block("首页")]
        HomePage = 1,
        /// <summary>
        /// 了解更多
        /// </summary>
        [Block("了解更多")]
        LearnMore = 2,
        /// <summary>
        /// 行业案例
        /// </summary>
        [Block("行业案例")]
        IndustryCases = 3,
        /// <summary>
        /// 云平台支持
        /// </summary>
        [Block("云平台支持")]
        Azure = 4,
        /// <summary>
        /// 安全服务支持
        /// </summary>
        [Block("安全服务支持")]
        Security = 5,
        /// <summary>
        /// 商业应用支持
        /// </summary>
        [Block("商业应用支持")]
        BizApps = 6,
        /// <summary>
        /// 现代办公支持
        /// </summary>
        [Block("现代办公支持")]
        ModernOffice = 7,
        /// <summary>
        /// 联系我们
        /// </summary>
        [Block("联系我们")]
        ContactUs = 8,
        /// <summary>
        /// 活动报名
        /// </summary>
        [Block("活动报名")]
        ActivityRegistration = 9,
    }

只要方法都引用了,就可以用这个属性;

我们在调用的时候可以这样调用:

log.ModuleType.GetBlock()

直接属性点方法就可以用了,如果想要循环便利也是可以的,在for循环里面写就行了。灵活多变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值