Создайте прокси WCF для веб-службы отдыха - PullRequest
2 голосов
/ 17 мая 2011

У меня есть сложная служба WCF Rest, которая принимает несколько входов и объектов.Я не могу просто вызвать его, выполнив HTTP POST в Fiddler, потому что слишком много данных, чтобы предоставить (я мог, но это займет у меня навсегда).Поэтому я хотел бы сделать это в коде с использованием прокси.Есть ли способ создания прокси для .NET 4 WCF Rest Service?В противном случае, что вы предлагаете, чтобы я мог легко протестировать услугу?

Спасибо.

Ответы [ 4 ]

8 голосов
/ 17 мая 2011

Не существует стандартного способа создания прокси для службы WCF REST (нет WSDL для REST, один новый стандарт, WADL, не получил широкого распространения, и WCF его не поддерживает).В целях тестирования вы должны предоставить интерфейс клиенту и использовать ChannelFactory - и установить соответствующее поведение в свойстве Endpoint фабрики , либо использовать вспомогательный класс WebChannelFactory это для вас.

Предполагая, что интерфейс называется ITest, это то, что у вас будет:

Uri serviceUri = new Uri("http://my.service.com/endpoint");
WebChannelFactory<ITest> factory = new WebChannelFactory<ITest>(serviceUri);
ITest proxy = factory.CreateChannel();
Assert.AreEqual(9, proxy.Add(4, 5));
1 голос
/ 17 мая 2011

Хотя в настоящее время нет стандартного способа создания прокси с помощью службы REST WCF, это можно сделать с помощью инструмента «Вставить XML как типы» в REST Starter kit . Это работает с xml, показанным на странице WCF / help по умолчанию, и создает класс C #, который соответствует структуре и может использоваться. Кроме того, посмотрите это видео, чтобы увидеть его в действии - Consumer Twitter за 3 минуты .

0 голосов
/ 17 мая 2011

Вы можете создать прокси, выполнив те же действия, что и для службы без RESTful WCF:

// Create the proxy
ChannelFactory<IContract> channelFactory = new ChannelFactory<IContract>("endpointName");
var restfulProxy = factory.CreateChannel();

// Invoke a method
var response = proxy.MyRestfulMethod("param1", "param2");
0 голосов
/ 17 мая 2011

svcutil.exe создаст прокси-класс, который вы сможете использовать в своем вызывающем приложении, что позволит вам вызывать соответствующие методы и передавать параметры в коде

...