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/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/storebook/p/12676920.html