2013-07-24 30 views
1

我在WCF服务主机中有不同的接口(端点),每个接口都是用于完全不同的问题。在经典的soapy web服务中,我可以定义一个基本主机地址(例如http://myhost.com/)并将每个接口映射到相对URI(IServiceContract - >service/IMaintenanceContract - >maintenance/),以便我可以通过例如。 http://myhost.com/service/mymethod用于RESTful WCF Web服务的UriTemplate前缀

现在,我以我的第一个步骤,使用JSON作为CRUD Web请求报文格式,我看到解决的操作唯一一个RESTful的WCF服务是通过使用来自WebInvoke(或WebGet)属性UriTemplate领域。不幸的是,我似乎没有把这个放在界面上,只是在操作契约方法上。

如何将每个接口映射到不同的相对位置URI

回答

4

是的,你会将基础URL放在[OperationContract]方法上。这是好的,因为你可以指定任何你想要的基础url。这里是一个示例界面,为您提供这种控制。

namespace MyHostApi 
{ 
    [ServiceContract] 
    public interface IMyHostApi 
    { 

     [OperationContract] 
     [WebGet(BodyStyle = WebMessageBodyStyle.Bare, 
       UriTemplate = "WhateverYouWant/HelloWorld/{name}")] 
     string HelloWorld(string format, string name); 

    } 
}