Вы пытаетесь использовать list
в качестве цели делегата, но list
имеет тип PropertyInfo
, что выглядит как не , что вы ожидали.Предполагая, что вы хотите получить значение свойства, а затем вызвать метод для этого, вам также нужно будет передать объект, содержащий свойство, чтобы вы могли получить фактический список.(В качестве альтернативы, может быть, это «это» - вы на самом деле не сделали этого ясно.) В любом случае, вы можете получить сам список и использовать , что в качестве цели.Например:
private Action<TListPropertyContainer, TDataValue>
CreateListPropertySetter<TListPropertyContainer, TDataValue>
(string listName, object target)
{
var listProperty = typeof(TListPropertyContainer).GetProperty(listName);
object list = listProperty.GetValue(target, null);
var method = typeof(Extensions).GetMethod("AddCSV");
return (Action<TListPropertyContainer, TDataValue>)Delegate.CreateDelegate(
typeof(Action<TListPropertyContainer, TDataValue>), list, method);
}
Если это не поможет, отредактируйте ваш вопрос с помощью короткого, но завершенного консольного приложения, демонстрирующего проблему.Прямо сейчас есть слишком много неизвестных, чтобы определенно помочь вам.