反射(四)CustomAttributes

这篇博客展示了如何利用C#的反射机制获取类PeoopleExample中使用了DataFieldAttribute特性的属性,包括属性名和对应的数据库字段类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

namespace CustomerAttribute
{
    [System.AttributeUsage(System.AttributeTargets.Property)]//只能对属性 (Property) 应用属性 (Attribute)。
    class DataFieldAttribute : System.Attribute
    {
        private string _FieldName;
        private string _FieldType;
        public DataFieldAttribute(string fieldname, string fieldtype)
        {
            this._FieldName = fieldname;
            this._FieldType = fieldtype;
        }
        public string FieldName
        {
            get { return this._FieldName; }
            set { this._FieldName = value; }
        }
        public string FieldType
        {
            get { return this._FieldType; }
            set { this._FieldType = value; }
        }
    }

}



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace CustomerAttribute
{   
   public class PeoopleExample
    {
        string _Pl_ID;
        [DataFieldAttribute("Pl_ID", "Int")]
        public string Pl_ID
        {
            get { return _Pl_ID; }
            set { _Pl_ID = value; }
        }




        int _PL_Age;
        [DataFieldAttribute("PL_Age", "Int")]
        public int PL_Age
        {
            get { return _PL_Age; }
            set { _PL_Age = value; }
        }




        string _Pl_Sex;
        [DataFieldAttribute("Pl_Sex", "nvarchar")]
        public string Pl_Sex
        {
            get { return _Pl_Sex; }
            set { _Pl_Sex = value; }
        }




        string _Pl_LoginName;
        [DataFieldAttribute("Pl_LoginName", "nvarchar")]
        public string Pl_LoginName
        {
            get { return _Pl_LoginName; }
            set { _Pl_LoginName = value; }
        }




        string _Pl_TrueName;
        [DataFieldAttribute("Pl_TrueName", "nvarchar")]
        public string Pl_TrueName
        {
            get { return _Pl_TrueName; }
            set { _Pl_TrueName = value; }
        }




        string _PL_Pwd;
        [DataFieldAttribute("PL_Pwd", "nvarchar")]
        public string PL_Pwd
        {
            get { return _PL_Pwd; }
            set { _PL_Pwd = value; }
        }


    }
}


 static void Main(string[] args)
        {
            PeoopleExample mp = new PeoopleExample();
            PropertyInfo[] infos = mp.GetType().GetProperties();
            string Str_TestAtrrubute = "";           


            object[] objDataFieldAttribute =null;
         
            foreach (PropertyInfo info in infos)
            {
                objDataFieldAttribute = info.GetCustomAttributes(typeof(DataFieldAttribute), false);
                if (objDataFieldAttribute != null)
                {
                    Console.WriteLine("FieldName: " + ((DataFieldAttribute)objDataFieldAttribute[0]).FieldName + " ; FieldType:" + ((DataFieldAttribute)objDataFieldAttribute[0]).FieldType);
                }
            }
            Console.WriteLine(Str_TestAtrrubute);
            Console.ReadKey();
        }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值