ServiceStack:动态添加路由

epi*_*tka 5 servicestack

我还没有尝试过,但我希望每个模块(Silverlight)注册自己的路由,而不是在应用程序启动时添加它.

应用程序启动后可以将路由添加到AppHost,还是必须在配置步骤中立即注册?

我想在启动时扫描所有程序集并为AppHost提供实现服务堆栈服务的所有程序集,但是让每个模块添加自己的路由(还没有找到确切的机制.

在我沿着这条路线走下去之前,需要知道在配置步骤之后是否可以添加路线.

myt*_*thz 5

ServiceStack中的所有配置和注册都应在该AppHost.Configure()方法中完成,并在此后保持不变.

如果要在模块中封装路由的注册,而不是将其打包为插件并手动注册它们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"); 
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在AppHost.Configure中注册插件,例如:

Plugins.Add(new MyModule());
Run Code Online (Sandbox Code Playgroud)