我想控制服务创建,因此我可以进行必要的调整,使服务的方法调用可以被拦截。通过将LinFu邮寄到服务的DLL
,可以实现拦截我们可以在ServiceStack上做DI,但不会干掉代码;如果通过DI进行日志服务调用,则每个服务都需要为ILogger公开DI接口。 AOP可以省去放置DI注入的接口,AOP是最好的代码DRYer
ServiceStack上是否有自定义服务工厂?所以DRYing代码是可能的
这让我想在我的服务上实施AOP:http://www.codeproject.com/Articles/23333/Introducing-LinFu-Part-VI-LinFu-AOP-Pervasive-Meth
答案 0 :(得分:2)
为您的DI容器实现IContainerAdapter(以及可选的IRelease),然后在AppHost.Configure中连接它。例如。对于温莎你做的:
public override void Configure(Funq.Container container)
{
...
var compositionRoot = new WindsorCompositionRoot(WindsorContainer);
container.Adapter = compositionRoot;
container.CheckAdapterFirst = true;
...
}