通过反射获取类上的Description标签

通过反射获取类上的Description标签在很多博客中都是通过反射获取类中的属性的Description及其他信息,但是如果需要获取类上的Description标签时可通过以下方法获取。

大家好,欢迎来到IT知识分享网。通过反射获取类上的Description标签

在很多博客中都是通过反射获取类中的属性的Description及其他信息,但是如果需要获取类上的Description标签时可通过以下方法获取。

var attrs = Attribute.GetCustomAttributes(entity.GetType());//获取类本身属性信息

在attrs中包含类的本身的信息,通过以下方法获取描述信息:string.Format(“类名为{0},描述为{1}的数据如下:”, entity.GetType().Name, ((DescriptionAttribute)attrs[0]).Description);//获取类名及描述

当需要获取类中的属性信息及字段值时可参考以下完整代码:

/// <summary>

/// 通过反射获取实体描述

/// </summary>

/// <param name=”entity”>实体</param>

/// <returns></returns>

public static string GetObjectDescription(object entity)

{

var attrs = Attribute.GetCustomAttributes(entity.GetType());//获取类本身属性信息

string tStr = string.Empty;

if (attrs.Length > 0)

{

tStr = string.Format(“类名为{0},描述为{1}的数据如下:”, entity.GetType().Name, ((DescriptionAttribute)attrs[0]).Description);//获取类名及描述

}

if (entity == null)

{

return tStr;

}

System.Reflection.PropertyInfo[] properties = entity.GetType().GetProperties(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public);//获取类属性list

if (properties.Length <= 0)

{

return tStr;

}

foreach (System.Reflection.PropertyInfo item in properties)

{

string name = item.Name; //名称

object value = item.GetValue(entity, null); //值

string des = ((DescriptionAttribute)Attribute.GetCustomAttribute(item, typeof(DescriptionAttribute))).Description;// 属性值

if (item.PropertyType.IsValueType || item.PropertyType.Name.StartsWith(“String”))

{

tStr += string.Format(“{0}数据为:{1},”, des, value);

}

else

{

GetObjectDescription(value);

}

}

return tStr.TrimEnd(‘,’) + “。”;

}

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/43092.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信