2014-06-04 3 views
0

У меня есть клиентское серверное приложение, где сервер - служба WCF. В клиенте Win8.1 я хочу получить доступ к этой службе, но только на нескольких экранах. Каков наиболее эффективный подход?Доступ к службе WCF из кода

1) При создании экземпляра в приложении, где его необходимо, используя:

var client = new SomeRandomNamespace.Server.ServerNameClient(); 

Q: Как правильно распорядиться этим клиентом?

2) Или создав этот клиент как общедоступный одноэлементный класс, он будет создан только один раз? Каковы преимущества и недостатки? Как будут обрабатываться запросы, если в одно и то же время будет несколько запросов?

Большое спасибо!

+0

Если бы только Windows Phone мог добавить ссылку на сервис, да? –

+0

Не WP, а приложение Windows Store (см. Теги) или любое другое приложение WPF. – user969153

+0

Извините, приложение для Windows Store и приложение для телефона одинаковы для меня, теперь они объединены в проекты универсального приложения. Сожалею. Возможно, у нас должны быть теги, которые более ясны. Наиболее эффективный подход - это сервисная ссылка в проекте, конечно. Для этого нет недостатков. Наличие статической ссылки на клиента бесполезно, оно ничего не принесет вам. Но центральный метод для возврата клиента в порядке. Обратитесь к этому: http://stackoverflow.com/questions/5251213/any-change-in-net-4-0-in-how-to-properly-call-a-wcf-service –

ответ

0

Вот как вы звоните клиенту:

var _Client = new MyServiceReference.MyServiceClient(); 
    try 
    { 
     var _Item = _Client.GetItem(123); 
     _Client.Close(); 
     return _Item; 
    } 
    catch 
    { 
     _Client.Abort(); 
     throw; 
    } 

Как вы можете видеть, Close() и Abort() имеют важное значение. Не удалять().

Удачи!

Смежные вопросы