У меня есть веб-сервис WCF, который определяет интерфейс IInterface. Этот интерфейс объявляет два метода: Method1 и Method 2. Я хочу предоставить оба этих метода через конечную точку SOAP, но хочу, чтобы только Method2 был доступен через конечную точку REST.
Пример объявления:
[ServiceContract]
public Interface IInterface
{
[OperationContract]
void Method1();
[OperationContract]
void Method2();
}
public class MyService : IInterface
{
public void Method1(){...}
public void Method2(){...}
}
До сих пор я пытался создать два дополнительных интерфейса: IInterfaceSOAP
и IInterfaceREST
, оба унаследованных от IInterface
. Удалил объявление Method2()
из IInterface
, добавил его к IInterfaceSOAP
и создал два отдельных класса MyServiceSOAP : IInterfaceSOAP
и MyServiceREST : IInterfaceREST
. Затем определены две отдельные конечные точки для каждого производного класса.
Но когда я тестирую сервис, используя WcfTestClient
, мыльный сервис перечисляет только Method1()
(тот, который определен в базе IInterface
).
Является ли приведенный выше шаблон приемлемым решением для выборочной демонстрации методов через две отдельные конечные точки? Или есть какой-то другой подход, который я пропустил?
Заранее спасибо.
P.S. Обратите внимание, что приведенный выше интерфейс является чрезвычайно упрощенной версией того, что я пытаюсь сделать. В рабочей версии намного больше методов.