使用 Invoke 从其他 class 调用函数

Calling a function from other class using Invoke

所以我想做的是 ;

1) 我从用户那里得到一个字符串输入。

2) 如果项目包含与用户输入同名的函数,我正在搜索系统。

3) 如果我找到一个与输入名称相同的函数,我将尝试执行/调用它。

4) 通常这个函数被放置到另一个 class 中,所以我尝试使用 Activators 创建 class 的实例,但调用函数仍然失败。

5) 调用函数给我错误;

Can not invoke method : (methodName) method could not be called !

这是我目前正在处理的代码;

 public void Execute()
 {
     // If we are only looking for function inputs.
     if (!m_canReadCls)
     {
         // If there is already a class linked into Developer Console.
         if (s_linkedType != null)
         {
             MethodInfo[] tmp = ReflectionExtensions.GetFunctions(s_linkedType);

             // Using linear search algorithm for executing functions.
             // Need to optimize it !
             if (tmp!= null)
             {
                 string funcName = m_uProps.m_inptField.text;
                 int i;
                 for (i = 0 ;i < tmp.Length;i++)
                 {
                     if ( tmp[i].Name == funcName)
                     {
                         var instance = Activator.CreateInstance( s_linkedType);
                         MethodInfo m = instance.GetType().GetMethod( funcName);
                         Invoke(m.Name, 0.0f);

                         Reset();
                     }
                 }
             }
         }
     }
 }

任何帮助都很棒,谢谢 :-)

参见 Microsoft help here You can call m.Invoke. or see this post

更多详情

public object Invoke(
     object obj,
     object[] parameters
)

Type magicType = Type.GetType("MagicClass");
ConstructorInfo magicConstructor = magicType.GetConstructor(Type.EmptyTypes);
object magicClassObject = magicConstructor.Invoke(new object[]{});

// Get the ItsMagic method and invoke with a parameter value of 100

MethodInfo magicMethod = magicType.GetMethod("ItsMagic");
object magicValue = magicMethod.Invoke(magicClassObject, new object[]{100});