我不确定如何组织我的项目。我有一个多服务的解决方案。例如。 ShoppingCart,UrlShortener。然而,AppHostBase只能采用一个程序集。如果将接口程序集与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}
) {}
我真的很新,所以有很多我可以错过,但我希望在我继续学习的过程中长期保持正确。
答案 0 :(得分:4)
ServiceStack接受AppHostBase constructor中的params Assembly[]
,即:
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) {...}