2016-04-12 31 views
0

Yalnızca "REST" tüketicilerinin kullanabileceği ve "SOAP" tüketicisine değil, "Çalışmayı Kısıtlama" yapmanın bir yolu var mı? ÖrneğinYalnızca REST tüketicilerine açılmış olan işlemler

: DİNLENME tüketicilerin sadece ikinci yöntem mücadele mümkün olmakla birlikte

[OperationContract] 
List<Response> GetResponses(int orderID); 

[OperationContract] 
[WebGet(UriTemplate = "{orderID}/responses", 
    ResponseFormat = WebMessageFormat.Json)] 
List<Response> GetResponses(string orderID); 

, SABUN tüketicilerin her iki yöntem görüyorum, ama her durumda ilk yöntemi kullanmalısınız. Bu nedenle, sadece SOAP tüketicilerine ve sadece REST tüketicilerine ikinci yöntemi göstermek istiyorum. Yeni hizmet oluşturmadan hedefime ulaşabilir miyim?

SABUN sözleşme

[ServiceContract] 
public interface IDummySoap 
{ 
    [OperationContract] 
    List<Response> GetResponses(int orderID); 
} 

: Ne yapabilirsiniz

+0

belki bunu yapamazsınız – Mostafiz

+0

Evet, öyle düşündüm. Bu yüzden buradayım, p –

cevap

1

maruz REST ikinci sözleşmeler, maruz SOAP için bir, ayırın ve daha sonra servis hem uygulamak yapmaktır REST sözleşmesi

[ServiceContract] 
public interface IDummyRest 
{  
    [OperationContract] 
    [WebGet(UriTemplate = "{orderID}/responses", 
     ResponseFormat = WebMessageFormat.Json)] 
    List<Response> GetResponses(string orderID); 
} 

Servis uygulaması Sonra

public class DummyService : IDummySoap, IDummyRest 
{ 
    public List<Response> GetResponses(int orderID) 
    { 
     // Implementation 
    } 

    public List<Response> GetResponses(string orderID) 
    { 
     // Implementation 
    }  
} 

SABUN sözleşme ve diğerlerini DİNLENME sözleşme kullanacak SOAP ile hizmetinizi aramak isteyenler.

+0

Oh, harika. Sadece arayüzleri unuttum. Teşekkürler! –