Предположим, что у меня есть следующий код WCF:
try
{
ServiceClient proxy = new ServiceClient();
proxy.ClientCredentials.UserName.UserName = "user";
proxy.ClientCredentials.UserName.Password = "password";
proxy.GetData(2);
if (proxy.State = CommunicationState.Opened)
{
proxy.GetData("data");
}
proxy.Close();
}
catch (FaultException ex)
{
// handle the exception
}
И так как я заметил, что попытка... catch и другая логика повторяются, не говоря уже о том, что настройка вызова WCF дорого, я хочу отправить много "методов и параметров" этой функции.
По существу, передайте GetData(2)
и GetData("data")
как массив методов, и результаты возвращаются либо асинхронно, либо синхронно.
Как бы это сделать?
Я полагаю, что для обработки результатов [] и совместного доступа к результатам [] я мог бы использовать два объекта ref. Однако я не уверен, как передать "методы с параметрами" в качестве параметра для другой функции.
Возможно, другим способом взглянуть на это может быть массив указателей на функции, с той же функцией с разными параметрами.
Может ли кто-нибудь подтолкнуть меня к правильному пути этого?
Дополнительная информация:
Я задаю этот вопрос поэтому я могу оптимизировать этот подход для обработки исключений и повторений WCF, но поэтому мне не нужно всегда открывать/закрывать клиента после каждого звоните.