自定义类属性怎么在。net项目中使用

介绍

今天就跟大家聊聊有关自定义类属性怎么在。net项目中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

一般来说,在。net中可以使用Type.GetCustomAttributes获取类上的自定义属性,可以使用PropertyInfo.GetCustomAttributes获取属性信息上的自定义属性。
,
下面以定义一个简单数据库表的映射实体类来说明相关的使用方法,基于自定义类属性和自定义类中的属性的自定义属性,可以方便的进行类标记和类中属性的标记
,
创建一个类的自定义属性,用于标识数据库中的表名称,需要继承自属性类:

代码如下:

[AttributeUsage (AttributeTargets。类、继承=false AllowMultiple=false)]
公共密封类TableAttribute:属性
{
,,,,,,,私人只读的字符串_TableName=啊?br/>,,,,,,,公共TableAttribute(字符串表)
,,,,,,,{
,,,,,,,,,,,这一点。_TableName=表;
,,,,,,,}
,,,,,,,公共字符串表名
,,,,,,,{
,,,,,,,,,,,{回报this._TableName;}
,,,,,,,}
}

创建一个属性的自定义属性,用于标识数据库表中字段的名称,需要继承自属性类:

代码如下:

[AttributeUsage (AttributeTargets。财产、继承=false, AllowMultiple=false)]
公共类FieldAttribute:属性
{
,,,,,,,私人只读的字符串_FieldName=?,,,///数据库的字段名称
,,,,,,,私人System.Data。DbType _Type=System.Data.DbType.String;,,///数据库的字段类型
,
,,,,,,,公共FieldAttribute(字符串字段名)
,,,,,,{
,,,,,,,,,,,,,this._FieldName=字段名;
,,,,,,}
,
,,,,,,,公共FieldAttribute(字符串字段名,System.Data。DbType类型)
,,,,,,{
,,,,,,,,,,,,,this._FieldName=字段名;
,,,,,,,,,,,,,this._Type=类型;
,,,,,,}
,
,,,,,,公共字符串字段名
,,,,,,,{
,,,,,,,,,,,{回报this._FieldName;}
,,,,,,,}
,
,,,,,,,公共System.Data。DbType类型
,,,,,,,{
,,,,,,,,,,,,得到{返回this._Type;}
,,,,,,,}
}


,
创建一个数据实体基类:

代码如下:

公共类BaseEntity
{
,,,,,,,公共BaseEntity ()
,,,,,,,{
,,,,,,,}
,
,,,,,,,,///& lt; summary>
,,,,,,,///获取表名称
,,,,,,,///& lt;/summary>
,,,,,,,///& lt; returns> & lt;/returns>
,,,,,,,公共字符串GetTableName ()
,,,,,,,{
,,,,,,,,,,,型类型=this.GetType ();
,,,,,,,,,,,[]对象obj=type.GetCustomAttributes (typeof (TableAttribute),真的);
,,,,,,,,,,,如果(obj。长度& lt;=0)
,,,,,,,,,,,{
,,,,,,,,,,,,,,,抛出新的异常(“实体类没有标识TableAttribute属性“);
,,,,,,,,,,,}
,,,,,,,,,,,其他
,,,,,,,,,,,{
,,,,,,,,,,,,,,,对象obj=obj [0],
,,,,,,,,,,,,,,,TableAttribute ta=(TableAttribute) obj。
,,,,,,,,,,,,,,,返回ta.TableName;,,,,,,,,,,,,,,,,,,,,,,,,,,,//获取表名称
,,,,,,,,,,,null

自定义类属性怎么在。net项目中使用