Я пытаюсь динамически получить значение get свойства, однако я получил исключение:
System.Reflection.TargetParameterCountException: 'Несоответствие количества параметров.'
object result = null;
....
MethodInfo getMethod;
if ((getMethod = p.GetGetMethod(true)) != null)
{
var openGetterType = typeof(Func<,>);
var concreteGetterType = openGetterType.MakeGenericType(typeResult, p.PropertyType);
var getterInvocation = Delegate.CreateDelegate(concreteGetterType, null, getMethod);
var value = getterInvocation.DynamicInvoke(); //exception thrown here
if (value != null)
{
p.SetValue(result, value, null);
}
}
Примечания:
- Я стараюсь избегать использования
p.GetValue()
, потому что это медленно. - Когда я пытался вызвать геттер, я подумал, что нет необходимости передавать какое-либо значение в
getterInvocation.DynamicInvoke()