• System.Reflection.Binder.cs


    ylbtech-System.Reflection.Binder.cs
    1.返回顶部
    1、
    #region 程序集 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    // C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.6.1mscorlib.dll
    #endregion
    
    using System.Globalization;
    using System.Runtime.InteropServices;
    
    namespace System.Reflection
    {
        //
        // 摘要:
        //     从候选列表中,选择一个成员,并执行从实参类型到形参类型的类型转换。
        [ClassInterface(ClassInterfaceType.AutoDual)]
        [ComVisible(true)]
        public abstract class Binder
        {
            //
            // 摘要:
            //     初始化 System.Reflection.Binder 类的新实例。
            protected Binder();
    
            //
            // 摘要:
            //     从一组指定的字段中,基于指定的条件中选择一个域。
            //
            // 参数:
            //   bindingAttr:
            //     System.Reflection.BindingFlags 值的按位组合。
            //
            //   match:
            //     用于匹配的候选项的字段集。 例如,当 System.Reflection.Binder 对象由 Overload:System.Type.InvokeMember,
            //     ,此参数指定的一套反射已确定为可能的字段匹配项,通常是因为它们具有正确的成员名称。 提供的默认实现 System.Type.DefaultBinder 更改此数组中的顺序。
            //
            //   value:
            //     用于查找匹配的字段的字段值。
            //
            //   culture:
            //     一个实例 System.Globalization.CultureInfo ,用来控制数据类型,强制类型的联编程序实现中强制。 如果 culture 为
            //     null,则使用当前线程的 System.Globalization.CultureInfo。 注意︰ 对于示例中,如果联编程序实现允许将值强制转换的字符串为数值类型,此参数是必需的要转换
            //     String 表示到 1000年 Double 值,因为表示 1000年。 默认的联编程序不会执行此类字符串强制。
            //
            // 返回结果:
            //     匹配的字段。
            //
            // 异常:
            //   T:System.Reflection.AmbiguousMatchException:
            //     对于默认联编程序, bindingAttr 包括 System.Reflection.BindingFlags.SetField, ,和 match 包含同样很好的匹配项的多个字段
            //     value。 例如, value 包含 MyClass 对象,它实现 IMyClass 接口,并 match 包含类型的字段 MyClass 和类型的字段
            //     IMyClass。
            //
            //   T:System.MissingFieldException:
            //     对于默认联编程序, bindingAttr 包括 System.Reflection.BindingFlags.SetField, ,和 match 不包含域,可以接受
            //     value。
            //
            //   T:System.NullReferenceException:
            //     对于默认联编程序, bindingAttr 包括 System.Reflection.BindingFlags.SetField, ,和 match 是
            //     null 或一个空数组。 - 或 - bindingAttr 包括 System.Reflection.BindingFlags.SetField, ,和
            //     value 是 null。
            public abstract FieldInfo BindToField(BindingFlags bindingAttr, FieldInfo[] match, object value, CultureInfo culture);
            //
            // 摘要:
            //     选择要从一组指定的方法,根据所提供的参数调用的方法。
            //
            // 参数:
            //   bindingAttr:
            //     System.Reflection.BindingFlags 值的按位组合。
            //
            //   match:
            //     方法用于匹配的候选项集。 例如,当 System.Reflection.Binder 对象由 Overload:System.Type.InvokeMember,
            //     ,此参数指定的一套反射已确定为可能的方法匹配项,通常是因为它们具有正确的成员名称。 提供的默认实现 System.Type.DefaultBinder 更改此数组中的顺序。
            //
            //   args:
            //     在传递的参数。 联编程序可以更改此数组中; 中参数的顺序例如,默认联编程序更改的参数的顺序,如果 names 参数用于指定位置顺序以外顺序。 如果联编程序实现强制参数类型,可以以及更改的类型和参数的值。
            //
            //   modifiers:
            //     使绑定能够处理的参数签名已在其中修改类型的参数修饰符的数组。 默认联编程序实现不使用此参数。
            //
            //   culture:
            //     一个实例 System.Globalization.CultureInfo ,用来控制数据类型,强制类型的联编程序实现中强制。 如果 culture 为
            //     null,则使用当前线程的 System.Globalization.CultureInfo。 注意︰ 对于示例中,如果联编程序实现允许将值强制转换的字符串为数值类型,此参数是必需的要转换
            //     String 表示到 1000年 Double 值,因为表示 1000年。 默认的联编程序不会执行此类字符串强制。
            //
            //   names:
            //     参数名称,如果参数名进行匹配时,要考虑或 null 如果要被视为纯位置变量。 例如,如果不按位置顺序提供参数,则必须使用参数名称。
            //
            //   state:
            //     该方法返回后, state 包含联编程序提供的对象,用于跟踪参数的重新排序。 联编程序创建此对象,并联编程序是此对象的唯一使用者。 如果 state 不是
            //     null 时 BindToMethod 返回时,必须通过 state 到 System.Reflection.Binder.ReorderArgumentArray(System.Object[]@,System.Object)
            //     方法如果你想要还原 args 到其原始顺序,例如,以便您可以检索的值 ref 参数 (ByRef 参数在 Visual Basic 中的)。
            //
            // 返回结果:
            //     匹配的方法。
            //
            // 异常:
            //   T:System.Reflection.AmbiguousMatchException:
            //     对于默认联编程序, match 包含同样很好的匹配项的多个方法 args。 例如, args 包含 MyClass 对象,它实现 IMyClass 接口,并
            //     match 包含采用的方法, MyClass 和采用的方法, IMyClass。
            //
            //   T:System.MissingMethodException:
            //     对于默认联编程序, match 包含没有可以接受中提供的参数的方法 args。
            //
            //   T:System.ArgumentException:
            //     对于默认联编程序, match 是 null 或一个空数组。
            public abstract MethodBase BindToMethod(BindingFlags bindingAttr, MethodBase[] match, ref object[] args, ParameterModifier[] modifiers, CultureInfo culture, string[] names, out object state);
            //
            // 摘要:
            //     类型更改给定 Object 到给定 Type。
            //
            // 参数:
            //   value:
            //     要更改为新的对象 Type。
            //
            //   type:
            //     新 Type , value 将变得。
            //
            //   culture:
            //     一个实例 System.Globalization.CultureInfo ,用来控制数据类型强制。 如果 culture 为 null,则使用当前线程的
            //     System.Globalization.CultureInfo。 注意︰ 对于示例中,此参数是必需的若要将转换 String 表示到 1000年 Double
            //     值,因为表示 1000年。
            //
            // 返回结果:
            //     一个包含给定的值作为新的类型的对象。
            public abstract object ChangeType(object value, Type type, CultureInfo culture);
            //
            // 摘要:
            //     返回从时 System.Reflection.Binder.BindToMethod(System.Reflection.BindingFlags,System.Reflection.MethodBase[],System.Object[]@,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],System.Object@),
            //     ,还原 args 参数是来自时 BindToMethod。
            //
            // 参数:
            //   args:
            //     在传递实参。 可以更改的类型和参数的值。
            //
            //   state:
            //     一个提供联编程序的对象,用于跟踪参数的重新排序。
            public abstract void ReorderArgumentArray(ref object[] args, object state);
            //
            // 摘要:
            //     选择从一组指定的方法,基于参数类型的方法。
            //
            // 参数:
            //   bindingAttr:
            //     System.Reflection.BindingFlags 值的按位组合。
            //
            //   match:
            //     方法用于匹配的候选项集。 例如,当 System.Reflection.Binder 对象由 Overload:System.Type.InvokeMember,
            //     ,此参数指定的一套反射已确定为可能的方法匹配项,通常是因为它们具有正确的成员名称。 提供的默认实现 System.Type.DefaultBinder 更改此数组中的顺序。
            //
            //   types:
            //     用于定位匹配方法的参数类型。
            //
            //   modifiers:
            //     使绑定能够处理的参数签名已在其中修改类型的参数修饰符的数组。
            //
            // 返回结果:
            //     匹配方法,如果找到,则否则为 null。
            //
            // 异常:
            //   T:System.Reflection.AmbiguousMatchException:
            //     对于默认联编程序, match 包含多个方法,是很好的匹配项所描述的参数类型 types。 例如,在数组 types 包含 System.Type 对象
            //     MyClass 和中的数组 match 包含采用的基类的类的方法, MyClass 和带接口的方法的 MyClass 实现。
            //
            //   T:System.ArgumentException:
            //     对于默认联编程序, match 是 null 或一个空数组。 - 或 - 一个元素 types 派生自 System.Type, ,但不属于类型 RuntimeType。
            public abstract MethodBase SelectMethod(BindingFlags bindingAttr, MethodBase[] match, Type[] types, ParameterModifier[] modifiers);
            //
            // 摘要:
            //     从给定组的属性,基于指定的条件中选择一个属性。
            //
            // 参数:
            //   bindingAttr:
            //     System.Reflection.BindingFlags 值的按位组合。
            //
            //   match:
            //     用于匹配的候选项的属性集。 例如,当 System.Reflection.Binder 对象由 Overload:System.Type.InvokeMember,
            //     ,此参数指定的反射已确定为可能的属性集匹配项,通常是因为它们具有正确的成员名称。 提供的默认实现 System.Type.DefaultBinder 更改此数组中的顺序。
            //
            //   returnType:
            //     必须具有返回值匹配的属性。
            //
            //   indexes:
            //     要搜索的属性索引类型。 用于索引属性,例如一个类的索引器。
            //
            //   modifiers:
            //     使绑定能够处理的参数签名已在其中修改类型的参数修饰符的数组。
            //
            // 返回结果:
            //     匹配的属性。
            //
            // 异常:
            //   T:System.Reflection.AmbiguousMatchException:
            //     对于默认联编程序, match 包含同样很好的匹配项的多个属性 returnType 和 indexes。
            //
            //   T:System.ArgumentException:
            //     对于默认联编程序, match 是 null 或一个空数组。
            public abstract PropertyInfo SelectProperty(BindingFlags bindingAttr, PropertyInfo[] match, Type returnType, Type[] indexes, ParameterModifier[] modifiers);
        }
    }
    2、
    2.返回顶部
     
    3.返回顶部
     
    4.返回顶部
     
    5.返回顶部
     
     
    6.返回顶部
     
    warn 作者:ylbtech
    出处:http://ylbtech.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Android Stuido 更新问题
    ListView 获取精确滚动值
    获取ActionBar高度
    AnyncTaskLoader写法
    ScrollView 里面捕获OnTouchMove事件
    ImageLoader displayers 之CircleBitmapDisplayer
    DownloadManager 下载Apk 打开时 解析应用包是出错
    GSON 使用记录
    Android studio 不能升级问题
    一个社交App是如何构建高伸缩性的交互式系统
  • 原文地址:https://www.cnblogs.com/storebook/p/12676920.html
Copyright © 2020-2023  润新知