4

プロジェクトの編成方法がわかりません。複数のサービスを備えたソリューションがあります。例えば。ショッピングカート、UrlShortener。ただし、AppHostBase は 1 つのアセンブリしか使用できません。インターフェイス アセンブリを ServiceModel アセンブリから分離する場合の懸念の分離と、将来のユース ケースにも関心があります。私のドメイン モデルがインターフェイス (おそらくクライアントの要件) について知る必要がある場合、少なくとも名前空間が不要な DTO などであふれないようにする必要があります。

だから今、私はそれをそのように見ており、それぞれが別々のアセンブリ/プロジェクトです:

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

AppHost を登録するときに 1 つのアセンブリしか構成できないという事実に混乱しています。

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

私の場合、さまざまなサービス用に個別のアセンブリが必要です。ショートURLサービス、ショッピングカートサービス。それらすべてを 1 つのプロジェクトに入れる必要はありません。

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

私は本当に新しいので、見落としていることがたくさんありますが、学び続けているので、長期的に正しくしたいと思っています.

4

1 に答える 1

4

ServiceStack はAppHostBase コンストラクターparams Assembly[]で 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 に答える