反射-后期绑定(Type.InvokeMember()方法)

+展开
-C#
///前面的几篇文章写的是怎样实例化一个未知的类
///那么这篇文章写的就是前几篇文章下面要做的事
///得到实例化对象后,怎样使用类中的方法:
///也就是后期绑定
///

using System;
using System.Reflection;

class program
{
    static void Main()
    {
        //通过AppDomain.CurrentDomain.CreateInstanceAndUnwrap()方法实例化一个未知类
        object obj = AppDomain.CurrentDomain.CreateInstanceAndUnwrap("wangjun","wangjun.wangjun");
       //从未知类中得到对象实例的类型
        Type type = obj.GetType();
        //新建参数对象
        object[] parameters = new object[2];
        //给新建的参数对象赋值
        parameters[0] = 7;
        parameters[1] = 8;
        //调用type.InvokeMember()方法使用未知类的方法Sum() 同时也得到了方法的返回值result
        int result = (int)type.InvokeMember(
            "Sum",   //调用的方法
            BindingFlags.InvokeMethod, //使用BindingFlags.InvokeMethod枚举
            null//设为空即可
            obj, //调用方法的对象
            parameters //调用方法的参数
        );
        //打印方法的返回值
        Console.WriteLine("7 + 8 = {0}",result);
    }
}


来源:http://2sws.blog.163.com/blog/static/179102492009843457907/

加支付宝好友偷能量挖...


评论(0)网络
阅读(103)喜欢(0)Asp.Net/C#/WCF