zoukankan      html  css  js  c++  java
  • Net反射技术应用解决对象不同版本方法不同参数的问题 【转载】

     在调用Office的时候,我们发现Office2003与Office2000的一个方法参数个数不同,这样导致我们不能够使用正常手段调用该方法,采用反射技术可以轻松解决问题。以下是我写的应用反射技术调用对象方法之简单原型。

    using System;
    using System.Reflection;
    public class Invoker
    {
    public static void Main()
    {
    System.Type myType = System.Type.GetType("Demo");//取得系统类型
    object obj = Assembly.GetAssembly(myType).CreateInstance("Demo");//创建实例
    MethodInfo method = myType.GetMethod("PrintLine");//提取方法信息
    method.Invoke(obj, new object[]{"Rookie", 27});//调用方法

    method = myType.GetMethod("PrintLine2");//提取另外一个方法,实际应用中是根据不同版本取得同一个方法,而构造不同参数数组
    method.Invoke(obj, new object[]{"Rookie", 27, "Rookie personal information."});//调用方法
    }
    }
    public class Demo
    {
    public Demo()
    {
    }
    //实际应用中老版本的方法
    public void PrintLine(string name, int age)
    {
    System.Console.WriteLine("Name = " + name + "; Age = " + age.ToString());
    }

    //实际应用中升级版本的方法(名称相同,只是参数个数不同)
    public void PrintLine2(string name, int age, string description)
    {
    System.Console.WriteLine("Name = " + name + "; Age = " + age.ToString() + "; Description = " + description);
    }
    }
  • 相关阅读:
    贪心策略---不重叠的区间个数
    贪心策略---分配饼干
    双指针---最长子序列
    双指针---回文字符串
    双指针---反转字符串中的元音字符
    双指针---两数平方和
    双指针---有序数组的TWO SUM
    排序---小结
    排序---桶排序
    变量的解构赋值
  • 原文地址:https://www.cnblogs.com/cwy173/p/1711051.html
Copyright © 2011-2022 走看看