最近用了下C#反射,在此记录一下。
项目中有时会根据传过来的参数来调用具体的方法。通常用用if...else if...或是switch...case...进行判断,参数的分支少的情况下勉强应对,一旦分支多了,一来是影响代码美观,二是如果要增加一个或多个参数的情况下,不仅需要实现具体的方法,还要增加相应的判断。
此时,通过反射能较好发处理这种问题。下面是我封装的方法:
/// <summary>
/// 创建实例对象(有参数方法)
/// </summary>
/// <param name="NameSpace">命名空间</param>
/// <param name="ClassName">类名</param>
/// <param name="MethodName">方法名</param>
/// <param name="Parameters">参数数组</param>
/// <returns>实例</returns>
public static object CreateInstance(string NameSpace, string ClassName, string MethodName, object[] Parameters)
{
Assembly assembly = Assembly.GetExecutingAssembly();
var _class = NameSpace + "." + ClassName;
var _obj = assembly.CreateInstance(_class, true);
var _return