本帖最后由 CJavaer 于 2014-04-29 17:26:00 编辑

解决方案 »

  1.   

    你需要一个工厂,当然也可以简单点使用微软企业库中地utility或者net4自己带的MEF,将方法注册到容器里面,在从容器里面查找 为了让你理解方便点,我随便google一下“c# IOC utility 依赖配置文件”
    http://www.cnblogs.com/xishuai/p/3670292.htmlps:MEF一样可以完成这功能,当然自己写一个工厂其实也可以
      

  2.   

    当然如果我个人我会直接选择MEF,采用importMany方式自动组合出所有方法,然后查找元数据声明上符合这个string地方法传递给委托
      

  3.   


            private void DoFunction(string FunctionName)
            {
                object[] Obj = new object[] { };
                MethodInfo vMethodInfo = GetType().GetMethod(FunctionName);
                if (vMethodInfo == null)
                {
                    return;
                }
                vMethodInfo.Invoke(this, Obj);
            }
    Obj 可以用来传参数
    被调用的function必须是public型的
      

  4.   

    ProcessDelegate--委托的参数应该是个方法名(就是一个函数名),调用委托的时候再传进来参数,就是被委托的方法要使用的参数,如果sVal是你要传的参数,就是process.Invoke(sVal);当然委托和方法定义的时候函数参数和返回值类型要一致