2011-06-11 69 views
1

我目前對於我的路由表有這樣的內容。有沒有更好的方式來處理WCF Web API或傳統WCF版本?WCF Http RouteTables(用於版本控制)

RouteTable.Routes.MapServiceRoute<Service1>("1.0/Route1", Config1); 
RouteTable.Routes.MapServiceRoute<Service2>("1.0/Route2", Config2); 
RouteTable.Routes.MapServiceRoute<Service3>("1.0/Route3", Config3); 
RouteTable.Routes.MapServiceRoute<Service4>("1.0/Route4", Config4); 

回答

0

你能做到這一點,但它是非常協議綁定,在這種情況下HTTP。我不知道是否有辦法做到這一點,而不用擔心如此多的協議?理想情況下,我們只想做一次,而不是每次運輸。幸運的是,有一種方法,讓我解釋一下。

在一天結束時,您的WCF內部應該是協議不可知的。我的意思是當你的服務調用一個方法的時候,我們不應該在乎它是否由REST,TCP,HTTP或者命名管道

在WCF中這很容易,版本控制也是如此。通過版本控制,我們可以瞭解更多關於.NET界面版本的知識,尤其是當它與WCF無關時。這個想法是,你的服務應該認識到:

interface ISomething1 { ... } 

後來當需要一種新的方法或改變你應該:

interface ISomething2 : ISomething1 { void SomethingNew (...) } 

它是那麼簡單的事情,在配置與2個端點發布服務,一個指向ISomething1,另一個指向ISomething2