反射判断某一个属性是否只读或者只写

.Net Framework 4.0 以下,包括4.0

            Type pPt = typeof(People);
            System.Reflection.PropertyInfo[] tPro = pPt.GetProperties(BindingFlags.Instance | BindingFlags.Public);
            foreach (var d in tPro)
            {
                //属性只读判断
                if (d.GetGetMethod() != null && d.GetSetMethod()==null)
                {

                }
                //属性只写判断
                if (d.GetGetMethod() == null && d.GetSetMethod() != null)
                {

                }
            }
            Console.Read();

.Net Framework 4.5 以上,包括4.5

            Type pPt = typeof(People);
            System.Reflection.PropertyInfo[] tPro = pPt.GetProperties(BindingFlags.Instance | BindingFlags.Public);
            foreach (var d in tPro)
            {
                //属性只读判断
                if (d.GetMethod != null && d.SetMethod==null)
                {
                    Console.WriteLine(d.Name + ":只读");
                }
                //属性只写判断
                if (d.GetMethod == null && d.SetMethod != null)
                {
                    Console.WriteLine(d.Name + ":只写");
                }
            }
时间: 2024-11-05 11:34:43

反射判断某一个属性是否只读或者只写的相关文章

判断是否一个属性或对象可序列化

Transient用来修饰属性. Transient int num; 表示当我们对属性序列化时忽略这个属性(即忽略不使之持久化). 所有属性必须都是可序列化的,特别是当有些属性本身也是对象的时候,要尤其注意这一点. 判断是否一个属性或对象可序列化:Serialver. Serialver TestObject(TestObject必须为已经编译) 执行结果:如果不可序列化:则出现不可序列化的提示.如果可以序列化,那么就会出现序列化的ID:UID. java.until.*有 StringTok

通过反射判断对象的属性值是否为空

问题产生场景? 在项目开发过程中我采用了表单内部嵌套列表的形式提交数据,将表单于列表数据同时提交保存.   有时候管理人的出资人结构我新增了多条  这时候并没有真正的保存到数据库,而是保存在了页面前端临时保存等待真正的提交  我操作删除 这时候删除实现的方式是 function delFundManage(obj){ $(obj).parent().parent().remove();} 移除了 但是在创建列表的时候 进行移除第一个 arr[1]  这里并没有将修改为arr[0] 这里提交到后台

第六章类(七)属性3提供属性验证、只读和只写属性、取值和赋值方法的访问修饰符

只记录回忆点 如果为LastName赋了无效的值,代码就会抛出异常.拦截赋值,并通过字段风格的API对参数进行验证,这是属性的优点之一. 一个好的实践是从属性的实现中访问属性的支持字段.换言之,要一直使用属性,不要直接调用字段. 可移除属性的取值方法或赋值方法来改变属性的可访问性. 只有赋值方法的属性是只写属性,这种情况较罕见.C#6.0开始支持只读自动实现的属性. 设计规范 如果属性值不变,要创建只读属性: 不要提供只写属性,也不要让赋值方法的可访问性比取值方法更宽松: 原文地址:https:

python 之简单聊聊类的只读和只写特性

# -*- coding: utf-8 -*- """ Created on Sun Nov 13 23:19:03 2016 @author: toby """ #知识点:只读特性和只写特性 class Province(object): #增加一个object继承新式类     memo = 'One of China\'s 23 provinces' #静态字段          def __init__(self,name,capital

drf序列化高级、自定义只读只写、序列化覆盖字段、二次封装Response、数据库查询优化(断关联)、十大接口、视图家族、自动补全图片链接

目录 自定义只读 自定义只写 序列化覆盖字段 二次封装Response 数据库关系分析 断外键关联关系 ORM操作外键关系 ORM四种关联关系 基表 序列化类其他配置(了解) 十大接口 BaseSerializer初始化方法 十大接口序列化总结 单查群查 单增群增 单删群删 单整体改/群整体改 单局部改/群局部改 群增群改配置 十大接口小结 字段提供就校验,不提供拉到 DjangoORM内置优化机制:一次最多查21条数据 models.py response.py serializers.py

Go 只读/只写channel

Go中channel可以是只读.只写.同时可读写的. //定义只读的channel read_only := make (<-chan int) //定义只写的channel write_only := make (chan<- int) //可同时读写 read_write := make (chan int) 定义只读和只写的channel意义不大,一般用于在参数传递中,见代码: package main import ( "fmt" "time"

C#用反射判断一个类型是否是Nullable同时获取它的根类型(转自网络)

在我们的应用程序中我们使用类描述我们的业务对象,为我们产生一些报表之类的,那就依赖大量不同的对象,我们创建一个帮助方法来转换我们的业务对象,或是一个List的业务对象到DataTables. 由于数据库表中字段可为null,对应.net 2.0以后我们可用Nullable类型来实现,那当我们业务对象类中字段有null时,并需要转换为DataTable时,这个场景产生,你可能用到以下方法: 下面的代码是一个list对象(不支持处理复杂类型)返回一个描述对象的DataTable /// <summa

iOS动态的判断一个对象中是否包含一个属性

<span style="font-family:Arial, Helvetica, sans-serif;">有时候我们可能会需要判断一个对象是否有这个属性,那么我们可以用下面这个方法</span> <span style="font-family: Arial, Helvetica, sans-serif;"> </span> <span style="font-family: Arial, Hel

java利用反射机制判断对象的属性是否为空

java利用反射机制判断对象的属性是否为空: Map<String,String> validateMap = new LinkedHashMap<String, String>(); validateMap.put("serial", "编号");validateMap.put("major", "专业"); public static <T> String validateFiledIs