1

Service Stack プロジェクト間でサービスを共有する最良の方法は何ですか?

私が現在行っている方法は、必要なサービスから継承することです。例えば:

// Grabbing a service from another project
public class ServiceA : AnotherNamespace.InAnotherAssembly.ServiceC
{
}

// Grabbing a service from another project
public class ServiceB : AnotherNamespace.InAnotherAssembly.ServiceD
{
}

// Business as usual
public class ServiceX : RestServiceBase<RequestPocoX>
{
    ....
}

// Business as usual
public class ServiceY : RestServiceBase<RequestPocoY>
{
    ....
}  

これにより、サービス スタックは、AppHost でアセンブリを参照するときに、すべてのサービスを自動的に関連付けることができます。

public AppHost() : base("Combined Services", typeof(ServiceA).Assembly)
{
} 

これは合理的なアプローチですか、それともより良い代替手段はありますか?

これを取り上げる理由は、「ServiceD」で ResolveService を実行しようとして問題が発生したためです。これは、IoC がそれを見つけられなかったことが原因である可能性があると思います。

それが明確であることを願っています。

4

1 に答える 1

2

複数のアセンブリをコンストラクターに渡すことができるはずです。

public AppHost()
    : base("Combined Services", 
        typeof(ServiceX).Assembly, 
        typeof(ServiceD).Assembly)
{
}
于 2012-06-27T06:20:59.587 に答える