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();
}
转载于:https://www.cnblogs.com/rancrazy/p/7347208.html
PropertyInfo 类相关推荐
- 使用PropertyInfo类得到对象属性及值
对一个对象进行属性分析,并得到相应的属性值,并判断属性的默认值以及空值 public class People{public string name { get; set; }public int a ...
- C#之反射(PropertyInfo类)
1.引入命名空间:System.Reflection:程序集:mscorlib(在mscorlib.dll中) 2.示例代码(主要是getType().setValue().getValue()方法) ...
- C#-反射(PropertyInfo类)
1.引入命名空间:System.Reflection:程序集:mscorlib(在mscorlib.dll中) 2.示例代码(主要是getType().setValue().getValue()方法) ...
- 让你省写大量重复代码的方法 使用PropertyInfo类 反射获取类 的类型 .
以前在开发一个系统的时候 小组里的人在写方法的时候很累,很多方法都是对象的属性需要大量的重复赋值,然后 添加到List对象中 你是否还在为一个对象里有几十 上百个属性 手动写代码赋值烦恼呢? 下面是一 ...
- 巧用PropertyInfo简化和改善代码
先看一段代码: //功能:根据传入的Employee对象更新数据库中的值public static string UpdateEmployee(Employee emp){//在此实现数据更新功能 } ...
- C# System.Runtime.InteropServices 相关学习总结
System.Runtime.InteropServices.COMException的解决方法 http://www.jb51.net/article/17629.htm 完美解决"换另一 ...
- JAVA程序员看C#的精华与糟粕
C#和java是号称90%的相同加上10%的不同.因此当时我学习C#,阅读两种代码完全没有什么阻碍. 对C#了解得深入以后,来发表下对这两种语言各自特性的一些看法 比较起java和C#大相径庭的那10 ...
- .Net 中的反射(查看基本类型信息) - Part.2
转自:http://www.cnblogs.com/JimmyZhang/archive/2008/02/17/1071372.html 反射概述 和Type类 1.反射的作用 简单来说,反射提供这样 ...
- C# 程序集 和 反射
.Net反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为.Net的反射机 ...
最新文章
- C语言SHELL排序算法
- JavaWeb学习笔记九 过滤器、注解
- Spring 基于Java的Bean声明
- kali linux改中文_kali linux 2019.4设置为中文方法
- sql调优的几种方式_「数据库调优」屡试不爽的面试连环combo
- [转] Optimizely:在线网站A/B测试平台
- python实现MD5加密
- 如何利用FL Studio中文版做出失真效果
- Mentor许可、许可分析、分析许可
- 《Axure RP 8 实战手册》pdf
- 1.1 异步复位的串联T触发器 ---- always中慎用 非阻塞
- 【pytorch EarlyStopping】深度学习之早停法入门·相信我,一篇就够。
- 【小程序云开发】30分钟搭建个人相册小程序
- 不是有效的win32应用程序_什么是模块,各种模块的有效行为(1)
- HttpURLConnection实现参数+文件传输
- 电子邮件签名档 HTML 手写时的折腾(附 原创工具)
- 漏洞挖掘之乱拳打死老师傅——Fuzzer
- pandas dataframe 如何隐藏左边的序号...
- 距阵乘以一个未知距阵得单位矩阵 怎么算_想要定制家具?板材会选吗,知道价格怎么计算比较合理吗?...
- 半加器、全加器、行波进位加法器、超前进位加法器
热门文章
- Android 9.0 hal3 CTS Verifier Camera Video配置修改
- 开发过程中自己遇到的问题总结
- 【无标题】zotero参考文献行间距设置
- 【题集】一维前缀和-二维前缀和-数星星问题-反复运行时如何降低时间复杂度
- UE5学习笔记01(基础操作二)
- 边伯贤计算机系文,刚追完《偏偏宠爱》,又对这部小甜文着了魔,病娇男主偏执且温柔...
- mysql中jdbc的metadata_JDBC元数据操作——DatabaseMetaData接口详解
- Modbus TCP协议解析
- Ubuntu20.04安装PyCham,Ubuntu压缩与解压缩
- book类 借书 java_模拟借书系统(Java入门第三季第一章练习)