.NET反射中BindingFlags的值

BindingFlags.Default

不指定绑定标志

BindingFlags.IgnoreCase

表示忽略 name 的大小写,不应考虑成员名的大小写

BindingFlags.DeclaredOnly

只应考虑在所提供类型的层次结构级别上声明的成员。不考虑继承成员。

BindingFlags.Instance

只搜索实例成员

BindingFlags.Static

只搜索静态成员

BindingFlags.Public

只搜索公共成员

BindingFlags.NonPublic

只搜索非公共成员(即私有成员和受保护的成员)。

BindingFlags.FlattenHierarchy

应返回层次结构上的公共静态成员和受保护的静态成员。不返回继承类中的私有静态成员。静态成员包括字段、方法、事件和属性。不返回嵌套类型。

BindingFlags.InvokeMethod

表示调用方法,而不调用构造函数或类型初始值设定项。对 SetField 或 SetProperty 无效。

BindingFlags.CreateInstance

表示调用构造函数。忽略 name。对其他调用标志无效。

BindingFlags.GetField

表示获取字段值。对 SetField 无效。

BindingFlags.SetField

表示设置字段值。对 GetField 无效。

BindingFlags.GetProperty

表示获取属性。对 SetProperty 无效。

BindingFlags.SetProperty

表示设置属性。对 GetProperty 无效。

参考资料:反射中BindingFlags的值   http://www.studyofnet.com/news/1046.html

时间: 2024-08-24 22:02:04

.NET反射中BindingFlags的值的相关文章

C#中 反射中的Assembly(装载程序集):

反射中的Assembly(装载程序集):可以通过Assembly的信息来获取程序的类,实例等编程需要用到的信息. 1  String assemblyName = @"NamespaceRef";//命名空间 2     String strongClassName = @"NamespaceRef.China";//需要动态生成的类交China Assembly.Load(assemblyName).CreateInstance(strongClassName);

在java反射中 Class.forName和classLoader的区别

解释 在java中,Class.forName()和ClassLoader()都可以对类进行加载,ClassLoader就是遵循双亲委派模型最终调用启动类加载器的类加载器,实现的功能是"通过一个类的全限定名来获取描述此类的二进制字节流",获取到二进制流后放到JVM中.Class.forName()方法实际上也是调用的CLassLoader来实现的. Class.forName(String className)这个方法的源码是: 最后调用的方法是forName0这个方法,在这个forN

反射中的BindingFlags

不指定绑定标志  BindingFlags.Default 表示忽略 name 的大小写,不应考虑成员名的大小写   BindingFlags.IgnoreCase 只应考虑在所提供类型的层次结构级别上声明的成员.不考虑继承成员    BindingFlags.DeclaredOnly 只搜索实例成员  BindingFlags.Instance 只搜索静态成员  BindingFlags.Static 只搜索公共成员  BindingFlags.Public 只搜索非公共成员(即私有成员和受保

查询反模式 - 正视NULL值

一.提出问题 不可避免地,我们都数据库总有一些字段是没有值的.不管是插入一个不完整的行,还是有些列可以合法地拥有一些无效值.SQL 支持一个特殊的空值,就是NULL. 在很多时候,NULL值导致我们的程序出现报错的现象,于是很多人就开始拒绝NULL值,想各种各样的方法来避免使用NULL值,但是很遗憾,NULL值恰恰就是满足我们的需要用于表示空值的. 空值经常存在于我们的数据库当中: 例如一个在职员工的离职时间. 例如一辆电力驱动的车的燃油消耗比. 二.反模式 很多人对于NULL值感觉到恐惧,原因

在反射中Member{get{..}set{..}}与Member{get;set;}的区别?

最近的在写代码的时候,需要用到反射来获取类中的所有公开属性值,于是写下如下代码: StringBuilder sb = new StringBuilder(); foreach (var f in this.GetType().GetFields()) { sb.AppendLine(string.Format( "{0}={1};", f.Name, f.GetValue(this))); } return sb.ToString(); 工作正常,后又在另一处对另外一个类需要获取属性

反射中getMethods 与 getDeclaredMethods 的区别

public Method[] getMethods()返回某个类的所有公用(public)方法包括其继承类的公用方法,当然也包括它所实现接口的方法.public Method[] getDeclaredMethods()对象表示的类或接口声明的所有方法,包括公共.保护.默认(包)访问和私有方法,但不包括继承的方法.当然也包括它所实现接口的方法. public static void main(String[] args) throws ClassNotFoundException, Illeg

JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别

关于获取类的字段有两种方式:getFields()和getDeclaredFields().我们先来看看这两者的区别吧: getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段. getDeclaredFields():获得某个类的所有声明的字段,即包括public.private和proteced,但是不包括父类的申明字段. 同样类似的还有getConstructors()和getDeclaredConstructors().getMethods()和getDe

java反射中Class详解

package com.hey.reflect; /** * 1.万事万物皆对象,class类同样是Class类的实例对象,比如说一个Student类是Class的实例对象(类是对象,是java.lang.Class类的实例对象) * * 2.有三种方式获取一个类的类类型 * * 3.我们可以通过类的类类型,创建类的实例对象 * */public class ReflectDemo { public static void main(String[] args) { //Foo的实例对象怎么表示

反射中getFields()与getDeclaredFields()区别

* getFields()与getDeclaredFields()区别:getFields()只能访问类中声明为公有的字段,私有的字段它无法访问,能访问从其它类继承来的公有方法.getDeclaredFields()能访问类中所有的字段,与public,private,protect无关,不能访问从其它类继承来的方法 * getMethods()与getDeclaredMethods()区别:getMethods()只能访问类中声明为公有的方法,私有的方法它无法访问,能访问从其它类继承来的公有方