У меня есть класс, который обрабатывает все взаимодействия в моем приложении с моей службой WCF, и кажется, что MSDN говорит, что использование выражения Using) _ с WCF плохо - я понимаю, почему это плохо, и согласен с этим (http://msdn.microsoft.com/en-us/library/aa355056.aspx)
Моя проблема в том, что предлагаемый метод реализации будет означать, что у меня есть 10 методов [как 10 открытых методов в моем сервисе], которые будут иметь одинаковый структурный код, и это, конечно, не соответствует принципу DRY -код выглядит примерно так:
try
{
results = _client.MethodCall(input parameteres);
_client.Close();
}
catch (CommunicationException)
{
if (_client != null && _client.State != CommunicationState.Closed)
{
_client.Abort();
}
}
catch (TimeoutException)
{
if (_client != null && _client.State != CommunicationState.Closed)
{
_client.Abort();
}
}
catch (Exception ex)
{
if (_client != null && _client.State != CommunicationState.Closed)
{
_client.Abort();
}
throw;
}
Это еще не ведет журналирование, но, конечно, когда я приду, чтобы начать его регистрировать, мне придется добавить работу журналирования почти в 10 разных местах
есть ли у кого-нибудь какие-либо советы о том, как я могу быть немного более изобретательным при повторном использовании кода
спасибо
Пол