2013-04-26 14 views
5

まだ試したことはありませんが、各モジュール(Silverlight)がアプリケーションの開始時に追加するのではなく、独自のルートを登録したいと思います。ServiceStack:経路を動的に追加する

アプリケーション開始後にAppHostにルートを追加することはできますか、それともすべての設定をすぐに設定する必要がありますか?

私は(まだ正確なメカニズムを考え出したていない起動時にすべてのアセンブリをスキャンして、サービス・スタックサービスを実装するすべてのアセンブリをAPPHOSTを提供しますが、各モジュールは、独自のルートを追加できるように考えています。

Iの前に設定工程の後にルートを追加することが可能であるかどうかを知る必要があり、このルートを下る。

答えて

5

ServiceStackのすべての設定と登録がAppHost.Configure()メソッド内で行われ、その後不変のままにする必要があります。

あなたがしたい場合はエンカモジュール内の経路の登録を促して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に、一般的なパラメータをルートにしてregistringときリクエストタイプですが、ここではサービスですか? – epitka

+0

@epitkaが更新され、RegisterServiceはService型を受け取り、Routes.AddはRequest DTO型をとります – mythz

関連する問題