2012-11-07 5 views
4

프로젝트를 구성하는 방법을 모르겠습니다. 여러 가지 서비스가있는 솔루션이 있습니다. 예. 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) {} 

제 경우에는 다른 서비스에 대한 별도의 어셈블리가 필요합니다. 짧은 URL 서비스, 쇼핑 카트 서비스. 나는 그들 모두를 하나의 프로젝트에 넣고 싶지는 않다.

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

은 정말 아주 새로운 해요 그래서이 누락 될 수있다 많이있다하지만 난 배우고 계속 나는 장기적으로 권리를 취득하고자하는 않습니다.

답변

3

ServiceStack는 AppHostBase constructor에서 params Assembly[]을 받아들 즉 :

public AppHost() : base("MyApp's REST services", 
     typeof(MyApp.RestServices.ShoppingCartService.Interface).Assembly, 
     typeof(MyApp.RestServices.Interface.ShoppingCartService).Assembly) {...} 
: 당신이 여러 어셈블리를 스캔 ServiceStack을 말할 수있는 의미

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

관련 문제