当前位置: 代码迷 >> 综合 >> C# 设置及获取属性备注信息 Description
  详细解决方案

C# 设置及获取属性备注信息 Description

热度:69   发布时间:2023-12-21 05:18:02.0

1.设置

using System.ComponentModel;

public class List_ParamsModel

{

[Description("开始时间")]
public string searchDateBeg { get; set; }
[Description("结束时间")]
public string searchDateEnd { get; set; }

2.获取

using System.Reflection;

using System.ComponentModel;

 

       /// <summary>
        /// 获取查询条件、获取属性注释及属性值
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public string GetConditions(List_ParamsModel model)
        {
            string condition = "查询条件:" +"\r\n";
            //Type type = typeof(List_ParamsModel);//model.GetType()
            //T t = (T)Activator.CreateInstance(type);
            System.Reflection.PropertyInfo[] properties = model.GetType().GetProperties(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Public);
            if (properties.Length <= 0)
            {
                return "";
            }
            foreach (System.Reflection.PropertyInfo property in properties)
            {
                if (property.PropertyType.IsValueType || property.PropertyType.Name.StartsWith("String"))
                {
                    string name = property.Name; //名称
                    object value = property.GetValue(model, null);  //值
                    string des = "";
                    object[] objs = property.GetCustomAttributes(typeof(System.ComponentModel.DescriptionAttribute), true);

                    if (value != null && !string.IsNullOrEmpty(value.ToString()) && objs.Length > 0 && ((System.ComponentModel.DescriptionAttribute)objs[0]).Description != null)
                    {
                        des = ((System.ComponentModel.DescriptionAttribute)objs[0]).Description;
                        condition += des + ":" + value.ToString() + "\r\n";
                    }
                }
            }
            return condition;
        }