Как правильно закрыть службу WCF, не загромождая ваш код? - PullRequest
0 голосов
/ 02 июня 2011

Читая принятый ответ на этот вопрос , очевидно, правильный способ использования службы WCF такой (скопирован с некоторыми изменениями)

// create your client
CustomerClient channel = CreateCustomerClient();

try
{
   // use it
   channel.GetCustomerDetails() ....

   (more calls)

   // close it
   channel.Close();
}
catch(CommunicationException commEx)
{
   // a CommunicationException probably indicates something went wrong 
   // when closing the channel --> abort it
   channel.Abort();
}

Однако, если моя программа используетслужба много раз, это загромождает мой код много .Как правильно сделать это, не загромождая мой код?Некоторые идеи с использованием лямбда-выражения приходят мне в голову, но пока они не чувствуют себя достаточно чистыми.

1 Ответ

1 голос
/ 02 июня 2011

Пост, на который вы ссылались, имеет Ответ, который ссылается на пост Марка Гравелла , в котором используется метод расширения, поэтому ваши вызовы WCF могут выглядеть примерно так:

using (var client = new Proxy().Wrap()) {
    client.BaseObject.SomeMethod();
}
...