如何在服务堆栈中的项目之间共享服务



服务堆栈项目之间共享服务的最佳方式是什么?

我目前的做法是从所需的服务继承。 例如:

// 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"中解决服务时遇到了问题。 我认为这可能是因为 IoC 找不到它。

我希望这是清楚的。

您应该能够将多个程序集传递给构造函数:

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

最新更新