[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();
        }

转载于:https://www.cnblogs.com/rancrazy/p/7347208.html

PropertyInfo 类相关推荐

  1. 使用PropertyInfo类得到对象属性及值

    对一个对象进行属性分析,并得到相应的属性值,并判断属性的默认值以及空值 public class People{public string name { get; set; }public int a ...

  2. C#之反射(PropertyInfo类)

    1.引入命名空间:System.Reflection:程序集:mscorlib(在mscorlib.dll中) 2.示例代码(主要是getType().setValue().getValue()方法) ...

  3. C#-反射(PropertyInfo类)

    1.引入命名空间:System.Reflection:程序集:mscorlib(在mscorlib.dll中) 2.示例代码(主要是getType().setValue().getValue()方法) ...

  4. 让你省写大量重复代码的方法 使用PropertyInfo类 反射获取类 的类型 .

    以前在开发一个系统的时候 小组里的人在写方法的时候很累,很多方法都是对象的属性需要大量的重复赋值,然后 添加到List对象中 你是否还在为一个对象里有几十 上百个属性 手动写代码赋值烦恼呢? 下面是一 ...

  5. 巧用PropertyInfo简化和改善代码

    先看一段代码: //功能:根据传入的Employee对象更新数据库中的值public static string UpdateEmployee(Employee emp){//在此实现数据更新功能 } ...

  6. C# System.Runtime.InteropServices 相关学习总结

    System.Runtime.InteropServices.COMException的解决方法 http://www.jb51.net/article/17629.htm 完美解决"换另一 ...

  7. JAVA程序员看C#的精华与糟粕

    C#和java是号称90%的相同加上10%的不同.因此当时我学习C#,阅读两种代码完全没有什么阻碍. 对C#了解得深入以后,来发表下对这两种语言各自特性的一些看法 比较起java和C#大相径庭的那10 ...

  8. .Net 中的反射(查看基本类型信息) - Part.2

    转自:http://www.cnblogs.com/JimmyZhang/archive/2008/02/17/1071372.html 反射概述 和Type类 1.反射的作用 简单来说,反射提供这样 ...

  9. C# 程序集 和 反射

    .Net反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为.Net的反射机 ...

最新文章

  1. C语言SHELL排序算法
  2. JavaWeb学习笔记九 过滤器、注解
  3. Spring 基于Java的Bean声明
  4. kali linux改中文_kali linux 2019.4设置为中文方法
  5. sql调优的几种方式_「数据库调优」屡试不爽的面试连环combo
  6. [转] Optimizely:在线网站A/B测试平台
  7. python实现MD5加密
  8. 如何利用FL Studio中文版做出失真效果
  9. Mentor许可、许可分析、分析许可
  10. 《Axure RP 8 实战手册》pdf
  11. 1.1 异步复位的串联T触发器 ---- always中慎用 非阻塞
  12. 【pytorch EarlyStopping】深度学习之早停法入门·相信我,一篇就够。
  13. 【小程序云开发】30分钟搭建个人相册小程序
  14. 不是有效的win32应用程序_什么是模块,各种模块的有效行为(1)
  15. HttpURLConnection实现参数+文件传输
  16. 电子邮件签名档 HTML 手写时的折腾(附 原创工具)
  17. 漏洞挖掘之乱拳打死老师傅——Fuzzer
  18. pandas dataframe 如何隐藏左边的序号...
  19. 距阵乘以一个未知距阵得单位矩阵 怎么算_想要定制家具?板材会选吗,知道价格怎么计算比较合理吗?...
  20. 半加器、全加器、行波进位加法器、超前进位加法器

热门文章

  1. Android 9.0 hal3 CTS Verifier Camera Video配置修改
  2. 开发过程中自己遇到的问题总结
  3. 【无标题】zotero参考文献行间距设置
  4. 【题集】一维前缀和-二维前缀和-数星星问题-反复运行时如何降低时间复杂度
  5. UE5学习笔记01(基础操作二)
  6. 边伯贤计算机系文,刚追完《偏偏宠爱》,又对这部小甜文着了魔,病娇男主偏执且温柔...
  7. mysql中jdbc的metadata_JDBC元数据操作——DatabaseMetaData接口详解
  8. Modbus TCP协议解析
  9. Ubuntu20.04安装PyCham,Ubuntu压缩与解压缩
  10. book类 借书 java_模拟借书系统(Java入门第三季第一章练习)