5

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

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

我正在考虑在启动时扫描所有程序集并为 AppHost 提供实现服务堆栈服务的所有程序集,但让每个模块添加自己的路由(尚未弄清楚确切的机制。

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

4

1 回答 1

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"); 
    }
}

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

Plugins.Add(new MyModule());
于 2013-04-26T21:48:34.160 回答