2013-04-26 105 views
5

我還沒有嘗試過,但我希望每個模塊(Silverlight)都註冊自己的路由,而不是在應用程序啓動時添加它。ServiceStack:動態添加路由

路線可以被添加到APPHOST後應用程序啓動,還是他們都必須配置過程中immediatelly註冊步驟?

我想掃描所有組件在啓動和提供APPHOST與實施服務棧服務的所有組件,而是讓每個模塊添加自己的路由(還沒有想出確切機制。

我之前沿着這條路走下去,需要知道,如果有可能的配置步驟之後添加路由。

回答

5

所有配置和登記ServiceStackAppHost.Configure()方法內完成,並保持其後不變。

如果你想ENCA在模塊中的路由psulate註冊比打包爲一個Plugin和手動註冊他們IPlugin.Register(IAppHost)

這裏有一些不同的方法來註冊路線:

public class MyModule : IPlugin 
{ 
    public void Register(IAppHost appHost) 
    { 
     appHost.Routes.Add<MyRequestDto>("/myservice", "POST PUT"); 

     appHost.Routes.Add(typeof(MyRequestDto2), "/myservice2", "GET"); 

     appHost.RegisterService(typeof(MyService), "/myservice3"); 
    } 
} 

然後你AppHost.Configure裏面你會註冊插件,例如:

Plugins.Add(new MyModule()); 
+0

當在註冊的路線,在APPHOST,泛型參數被一個請求類型,但這裏是一個服務? – epitka 2013-04-29 13:35:09

+0

@epitka更新,RegisterService採用服務類型,而Routes.Add採用請求DTO類型 – mythz 2013-04-29 14:44:15