所以我想做的是;
1)我从用户那里得到了一个字符串输入。
2)如果项目包含与用户输入名称相同的功能,我正在搜索系统。
3)如果我找到一个具有相同输入名称的函数,则试图执行/调用它。
4)通常,此函数放置在另一个类中,因此我尝试使用Activators创建类的实例,但是invoke函数仍然失败。
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();
}
}
}
}
}
}
任何帮助都很好,谢谢:-)
答案 0 :(得分:0)
请参见Microsoft help here,您可以致电m.Invoke
。或查看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});