4

我不确定如何组织我的项目。我有一个包含多种服务的解决方案。例如。购物车,UrlShortener。然而,AppHostBase 只能接受一个程序集。如果将 Interface 程序集与 ServiceModel 程序集分离,我还对关注点分离和未来用例感兴趣。如果我的域模型需要了解接口(可能是客户端要求?),那么至少命名空间不会被不必要的 DTO 等淹没。

所以现在我认为它是这样的,每个都是单独的程序集/项目:

MyApp.RestServices.ShoppingCartService.Interface
MyApp.RestServices.ShoppingCartService.ServiceModel
MyApp.RestServices.UrlShorteningService.Interface
MyApp.RestServices.UrlShorteningService.ServiceModel

我很困惑在注册 AppHost 时只能配置一个程序集。

public AppHost() : base("MyApp's REST services", 
    typeof(MyApp.RestServices.ShoppingCartService.Interface).Assembly) {}

就我而言,我想要不同服务的单独程序集,例如。短网址服务,购物车服务。我不想将它们全部放在一个项目中。

public AppHost() : base("MyApp's REST services", 
    new[]{
          typeof(MyApp.RestServices.ShoppingCartService.Interface).Assembly,
          typeof(MyApp.RestServices.Interface.ShoppingCartService).Assembly}
) {}

我真的很新,所以我可能会遗漏很多东西,但我确实希望在我继续学习的过程中长期保持正确。

4

1 回答 1

4

ServiceStackparams Assembly[]AppHostBase 构造函数中接受 a ,即:

protected AppHostBase(
    string serviceName, params Assembly[] assembliesWithServices) {...}

这意味着您可以告诉 ServiceStack 扫描多个程序集:

public AppHost() : base("MyApp's REST services", 
      typeof(MyApp.RestServices.ShoppingCartService.Interface).Assembly,
      typeof(MyApp.RestServices.Interface.ShoppingCartService).Assembly) {...}
于 2012-11-07T17:52:16.460 回答