zoukankan      html  css  js  c++  java
  • PropertyInfo 类

            [AttributeUsage(AttributeTargets.Property)]

      //Models 特性
            public class CanWriteAttribute : Attribute
            {
                public bool CanWrite { get; set; }
            }
            public System.Data.SqlClient.SqlParameter[] AddParameter<T>(T Models)
            {
                List<System.Data.SqlClient.SqlParameter> List = new List<System.Data.SqlClient.SqlParameter>();
                object objModels = Models;
                Type type = objModels.GetType();
                //Visual Basic
                //System.Reflection.PropertyInfo[] PInfo = type.GetProperties(BindingFlags.NonPublic OR BindingFlags.Instance OR BindingFlags.Static);
                //Visual C# 必须使用 BindingFlags.Public|BindingFlags.GetProperty|BindingFlags.Instance
                PropertyInfo[] PInfo = type.GetProperties(BindingFlags.Public | BindingFlags.GetProperty | BindingFlags.Instance);
                foreach (PropertyInfo item in PInfo)
                {
                    if (item == null)
                    {
                        continue;
                    }
                    var IsCanWrite = Attribute.GetCustomAttribute(item, typeof(CanWriteAttribute)) as CanWriteAttribute;
                    //实体包含CanWriteAttribute特性 则跳出
                    if (IsCanWrite != null && !IsCanWrite.CanWrite)
                    {
                        continue;
                    }
                    if (item.PropertyType == typeof(bool))
                    {
                        continue;
                    }
                    //属性不可写
                    if (!item.CanWrite)
                    {
                        continue;
                    }
                    //该属性是否可读
                    if (item.CanRead)
                    {
                        object objValue = item.GetValue(Models, item.GetIndexParameters());
                        //Key Value加入SqlParameter
                        List.Add(new System.Data.SqlClient.SqlParameter(item.Name, objValue));
                    }
                }
                return List.ToArray();
            }

  • 相关阅读:
    搭建Springboot+mybatis+redis+druid
    搭建Springboot+mybatis+redis+druid
    Uber是一部无所不在的数字出行物联网
    Uber是一部无所不在的数字出行物联网
    Uber是一部无所不在的数字出行物联网
    Uber是一部无所不在的数字出行物联网
    详解光伏扶贫模式 参与部门和各扮演的角色
    详解光伏扶贫模式 参与部门和各扮演的角色
    深入解析:从源码窥探MySQL优化器
    如何解决NetBeans9出现java.lang.StackOverflowError问题
  • 原文地址:https://www.cnblogs.com/rancrazy/p/7347208.html
Copyright © 2011-2022 走看看