Как мне вызвать метод расширения, используя отражение?C#

Место общения программистов C#
Ответить
Anonymous
 Как мне вызвать метод расширения, используя отражение?

Сообщение Anonymous »

Я ценю, что подобные вопросы были заданы ранее, но я изо всех сил пытаюсь вызвать метод LINQ , где в следующем коде. Я хочу использовать отражение, чтобы динамически вызывать этот метод, а также динамически построить делегат (или лямбда), используемый в предложении , где . Это краткий пример кода, который после работы поможет сформировать часть интерпретированного DSL, которую я строю. Ура. < /P>
public static void CallWhereMethod()
{
List myObjects = new List(){new MyObject{Name="Jon Simpson"}};
System.Delegate NameEquals = BuildEqFuncFor("Name", "Jon Simpson");
object[] atts = new object[1];
atts[0] = NameEquals;

var ret = typeof(List)
.InvokeMember("Where", BindingFlags.InvokeMethod, null, InstanceList, atts);
}

public static Func BuildEqFuncFor(string prop, object val)
{
return t => t.GetType()
.InvokeMember(prop, BindingFlags.GetProperty, null, t, null) == val;
}


Подробнее здесь: https://stackoverflow.com/questions/145 ... reflection
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»