- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例说反射
????????反射的思路,是用Type取得实例类型后,用Activator.CreateInstance()创建实例,再用MethodInfo来调用类中的方法,用PropertyInfo来调用类中的属性,调用事件和参数等方法也是类似,请参见下面的说明。1.使用Module了解包含模块的程序集以及模块中的类等,还可以获取在模块上定义的所有全局方法或其它特定的非全局方法。2.使用ConstructorInfo了解构造函数的名称、参数、访问修饰符(如public 或private)和实现详细信息(如abstract或virtual)等。使用Type的GetConstructors或GetConstructor方法来调用特定的构造函数。?3.使用MethodInfo了解方法的名称、返回类型、参数、访问修饰符(如public 或private)和实现详细信息(如abstract或virtual)等。使用Type的GetMethods或GetMethod方法来调用特定的方法。4.使用FieldInfo了解字段的名称、访问修饰符(如public或private)和实现详细信息(如static)等,并获取或设置字段值。5.使用EventInfo了解事件的名称、事件处理程序数据类型、自定义属性、声明类型和反射类型等,添加或移除事件处理程序。?6.使用PropertyInfo了解属性的名称、数据类型、声明类型、反射类型和只读或可写状态等,获取或设置属性值。?7.使用ParameterInfo了解参数的名称、数据类型、是输入参数还是输出参数,以及参数在方法签名中的位置等。?MethodInfo mi = type.GetMethod( FunctionWithParameter ,?BindingFlags.Public|BindingFlags.Instance ,?null?,?newType[]{?typeof(string) } ,?null?);这个GetMethod中的参数说明了,如下:public virtual MethodInfoGetMethod(?? string name,???BindingFlagsbindingAttr,?? Binder binder,?? Type[] types,?? ParameterModifier[] modifiers);参数name:包含要获取的方法名称的 String。bindingAttr:一个位屏蔽,由一个或多个指定有哪些信誉好的足球投注网站执行方式的BindingFlags组成。binder:一个 Binder 对象,该对象定义一组属性并启用绑定,而绑定可能涉及选择重载方法、强制参数类型和通过反射调用成员。types:表示此方法要获取的参数的个数、顺序和类型的 Type 对象数组。获取不使用参数的方法的 Type 类型的空数组(即 Type[] types = new Type[0])。modifiers:ParameterModifier对象数组,表示与 types 数组中的相应元素关联的属性。默认的联编程序不处理此参数。返回值:表示符合指定要求的方法的MethodInfo对象或是NULL;?其中bindingAttr中的BindingFlags定义如下。?成员名称说明值CreateInstance受 .NET Framework 精简版的支持。指定“反射”应该创建指定类型的实例。调用与给定参数匹配的构造函数。忽略提供的成员名。如果未指定查找类型,将应用 (Instance |Public)。调用类型初始值设定项是不可能的。512DeclaredOnly受 .NET Framework 精简版的支持。指定只应考虑在所提供类型的层次结构级别上声明的成员。不考虑继承成员。2Default受 .NET Framework 精简版的支持。不指定绑定标志。0ExactBinding受 .NET Framework 精简版的支持。指定提供参数的类型必须与对应形参的类型完全匹配。如果调用方提供一个非空?Binder?对象,则“反射”将引发异常,因为这意味着调用方正在提供的BindToXXX?实现将选取适当的方法。“反射”建立通用类型系统的访问规则模型。例如,如果调用方在相同的程序集内,则它不需要内部成员的特殊权限。否则,调用方需要ReflectionPermission。这与保护成员、私有成员等成员的查找是一致的。一般原则是,ChangeType?应只执行永远不会丢失数据的扩展强制。扩展强制的一个例子是将 32 位有符号整数值强制为 64 位有符号整数值。这与窄缩强制不同,后者可能丢失数据。窄缩强制的一个例子是将 64 位有符号整数强制为 32 位有符号整数。默认联编程序忽略此标志,而自定义联编程序可以实现此标
您可能关注的文档
- X线防护原则.doc
- WorkNC 、 powermill在塑胶模具上的应用试切比较.pdf
- zemax双胶合物镜设计发布版.pdf
- [原创]2011年《极限突破》语文 新课标语文版 九年级下册 第一单元 1.家 [配套课件].ppt
- [Raymond]我的娃娃摄影镜头.doc
- _巨人的花园_教学设计与评析.pdf
- § 傅里叶级数.ppt
- §19~1 光的直线传播.doc
- §3.1.2 泊肃叶定律.ppt
- §4.2 傅里叶级数.ppt
- 2024年湖南省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年江西省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年安徽省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年福建省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年广东省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年河北省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年河南省高考英语试卷(含答案解析)+听力音频.docx
- 2024年湖北省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年湖南省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年江苏省高考英语试卷(含答案解析)+听力音频+听力原文.docx
文档评论(0)