C# 方法信息调用
C# MethodInfo Invoke
我找不到这段代码中的问题。我正在尝试找到一种特定类型的 属性 并对其调用方法。
函数如下:
private string GetLangTranslator(object root)
{
var properties = root.GetType().GetProperties();
foreach (var property in properties)
{
if (typeof(MultiLanguage) == property.PropertyType)
{
MethodInfo m = property.PropertyType.GetMethod("Translate");
return m.Invoke(property.PropertyType, new object[] {Value1}) as string;
}
}
return null;
}
例外情况如下:
System.Reflection.TargetException: 'Object does not match target type.'
你应该:
object propValue = property.GetValue(root);
return m.Invoke(propValue, new object[] {Value1}) as string;
Invoke
的第一个参数是你要调用的对象的实例method/property...所以需要先获取属性的值
我找不到这段代码中的问题。我正在尝试找到一种特定类型的 属性 并对其调用方法。
函数如下:
private string GetLangTranslator(object root)
{
var properties = root.GetType().GetProperties();
foreach (var property in properties)
{
if (typeof(MultiLanguage) == property.PropertyType)
{
MethodInfo m = property.PropertyType.GetMethod("Translate");
return m.Invoke(property.PropertyType, new object[] {Value1}) as string;
}
}
return null;
}
例外情况如下:
System.Reflection.TargetException: 'Object does not match target type.'
你应该:
object propValue = property.GetValue(root);
return m.Invoke(propValue, new object[] {Value1}) as string;
Invoke
的第一个参数是你要调用的对象的实例method/property...所以需要先获取属性的值