2011-08-31 130 views
1

我正在使用.net 4.0 wcf寧靜服務項目。正如我已經創建了兩個服務1)OrderService 2)ProductServiceRestful web服務路由

在這一刻我已在Global.asax中配置它們作爲項目的一部分如下:

RouteTable.Routes.Add(new ServiceRoute("products", new WebServiceHostFactory(), 
                typeof (ProductService))); 
RouteTable.Routes.Add(new ServiceRoute("orders", new WebServiceHostFactory(), 
                typeof (OrderService))); 

我可以使用以下URL訪問服務:

http://localhost/orders/123 
    http://localhost/products/456 

但我的要求是我必須能夠訪問某個特定的產品中使用的URL的格式如下特定的順序:

http://localhost/orders/{orderId}/products/{productId} 

任何人都可以建議我應該使用什麼路由來讓兩個不同的服務一起工作。

更新:有一個在其中接收兩個參數

  1. 訂單ID和

  2. 的productId

    返回所需產物

回答

0

在ProductService方法你的OrderService(及相關服務合同)暴露與正確UriTemplate

public class OrderService : IOrderService 
{ 
    [WebGet(UriTemplate = "{orderId}/products/{productId}")] 
    public Product GetOrderProduct(int orderId, int productId) 
    { 
     ... 
    } 

} 

操作它不能在ProductService如果throgh路由到OrderServiceorders它必須是可訪問的。