Минимизация клиентского пространства WCF - PullRequest
0 голосов
/ 16 февраля 2012

Может кто-нибудь подсказать это?

Как я могу устранить необходимость обновления веб-ссылок и минимизировать использование клиента WCF в web.config для повышения удобства сопровождения кода.

Заранее спасибо

BB

Ответы [ 2 ]

2 голосов
/ 16 февраля 2012

Не совсем уверен, что вы подразумеваете под свести к минимуму клиентское пространство WCF - но инструменты VS и svcutil.exe обычно делают слишком много вещей - так что все делают вручную, зная , что выdo, безусловно, может минимизировать количество кода и конфигурации, которые вам нужны.

Для этого есть несколько видеоресурсов для WCF, которые касаются именно этой темы:

1 голос
/ 16 февраля 2012

Лучше всего вообще отказаться от сервисных ссылок.Однако вы можете сделать это только в том случае, если у вас есть доступ к сборкам, которые содержат фактический интерфейс сервиса, контракты на эксплуатацию и контракты на данные.Затем вы можете создать служебный прокси-сервер на лету, используя ChannelFactory:

// Create service proxy
var factory = new ChannelFactory<IMyServiceContract>("NameOfEndPointInConfigFile");
var proxy = factory.CreateChannel();

// Call the operation
var myRequestDataContractType = new myRequestDataContractType();
var myResponseDataContractType = proxy.MyServiceOperation(myRequestDataContractType);

В вашем конфигурационном файле все, что вам нужно, это определение конечной точки:

<system.serviceModel>
  <client>
    <endpoint address="net.tcp://localhost:8000/MyService" 
              binding="netTcpBinding"
              contract="ServiceNamespace.IMyServiceContract"
              name="NameOfEndPointInConfigFile">
    </endpoint>
  </client>
</system.serviceModel>

Это настолько минимально, насколько вы можетеполучить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...