C # как создать метод, который вызывает делегат в другой универсальный метод - PullRequest
2 голосов
/ 11 мая 2011

У меня есть такой код ....

var x = inv.InvokeProxy<ServiceClient, AnotherType, ReturnType>(
    p => p.execute(input), guid);

Я хочу инкапсулировать весь приведенный выше код в делегат, включая указанные типы.

Iзатем хотите создать другой метод, который будет буквально вызывать вышеуказанный метод.Примерно так ...

Func<a,b> func = delegate()
{

.... 1st code sample inserted here ...

}

Тогда мне нужно передать func другому методу, который вызовет его, например

protected TReturn InvokeDelegate<TReturn>(Func<> functionObject)
{
    return functionObject.Invoke();
}

Кто-нибудь знает, как это можно сделать?

1 Ответ

2 голосов
/ 11 мая 2011

Это на самом деле довольно просто:

Func<TypeOfInput, Guid, TypeOfX> func = (input, guid) => 
                  inv.InvokeProxy<ServiceClient, AnotherType, ReturnType>(
                                             p => p.execute(input), guid);

Выполните это так:

TypeOfInput yourInput = ...;
Guid yourGuid = ...;
TypeOfX x = func(yourInput, yourGuid);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...