.Net反射技术应用解决对象不同版本方法不同参数的问题

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大   举报/纠错

在调用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);

}

}

关于该文章讨论请到http://202.102.53.36/user3/rookieport/main.asp?id=1377826

举报/纠错
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005-2025 王朝網路 版權所有 聯絡我們導航