zoukankan      html  css  js  c++  java
  • C#利用反射来判断对象是否包含某个属性的实现方法

        public static class SerializeLibrary
        {
            /// <summary>
            /// 利用反射来判断对象是否包含某个属性
            /// </summary>
            /// <param name="instance">object</param>
            /// <param name="propertyName">需要判断的属性</param>
            /// <returns>是否包含</returns>
            public static bool ContainProperty(this object instance, string propertyName)
            {
                if (instance != null && !string.IsNullOrEmpty(propertyName))
                {
                    PropertyInfo _findedPropertyInfo = instance.GetType().GetProperty(propertyName);
                    return (_findedPropertyInfo != null);
                }
                return false;
            }
    
            /// <summary>
            /// 获取对象属性值
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="t"></param>
            /// <param name="propertyname"></param>
            /// <returns></returns>
            public static string GetObjectPropertyValue<T>(T t, string propertyname)
            {
                Type type = typeof(T);
                PropertyInfo property = type.GetProperty(propertyname);
                if (property == null)
                {
                    return string.Empty;
                }
                object o = property.GetValue(t, null);
                if (o == null)
                {
                    return string.Empty;
                }
                return o.ToString();
            }
    
            /// <summary>
            /// 获取属性列表
            /// </summary>
            /// <typeparam name="T"></typeparam>
            public static void GetObjectProperty<T>()
            {
                Type t = typeof(T);
                System.Reflection.PropertyInfo[] properties = t.GetProperties();
                foreach (System.Reflection.PropertyInfo info in properties)
                {
                    Console.Write("name=" + info.Name + ";" + "type=" + info.PropertyType.Name + ";value=" + GetObjectPropertyValue<Object>(new object(), info.Name) + "<br />");
                }
            }
        }

     代码使用方法如下:

    bool cc = _person.ContainProperty("cc");
    bool aa = _person.ContainProperty("Age");
  • 相关阅读:
    通用数据级权限控制解决方案的实现(二)(转)
    linux copy file to window
    日历 存储过程
    ssas 日期 时间维度表 sql 代码
    Dynamic CRM常用代码记录
    跨服务器查询sql (摘要)
    验证码实现
    office文档转pdf
    页面导出生成pdf,使用wkhtmltopdf第三方工具
    iTextSharp简单生成pdf和操作pdf添加水印
  • 原文地址:https://www.cnblogs.com/rinack/p/5227111.html
Copyright © 2011-2022 走看看