ServiceStack:会有 OnBeforeExecuteAsync 吗?
ServiceStack: Will there be an OnBeforeExecuteAsync?
我有一个带有基类的 ServiceStack 服务,我希望执行一些代码“OnBeforeExecute”,如下所示。但是,我主要遇到需要等待的异步方法,通常,这是我尝试在任何地方都遵循的方法(async everywhere)。但这成为一个问题,因为 OnBeforeExecute 不作为等待对象存在:
public override void OnBeforeExecute(object requestDto)
{
base.OnBeforeExecute(requestDto);
await Redis.GetAsync<Test>("asd"); // <-- async example call
}
是否有计划推出 virtual Task OnBeforeExecute(object requestDto)
来解决这个问题,或者您有任何其他建议吗?
您可以使用异步 Global Request Filter or async Filter attribute。
从 v5.10.4+ 您的服务可以实现 IServiceBeforeFilterAsync
在每个请求之前执行 OnBeforeExecuteAsync()
,例如:
public class MyServices : Service, IServiceBeforeFilterAsync
{
public Task OnBeforeExecuteAsync(object requestDto)
{
//...
}
}
我有一个带有基类的 ServiceStack 服务,我希望执行一些代码“OnBeforeExecute”,如下所示。但是,我主要遇到需要等待的异步方法,通常,这是我尝试在任何地方都遵循的方法(async everywhere)。但这成为一个问题,因为 OnBeforeExecute 不作为等待对象存在:
public override void OnBeforeExecute(object requestDto)
{
base.OnBeforeExecute(requestDto);
await Redis.GetAsync<Test>("asd"); // <-- async example call
}
是否有计划推出 virtual Task OnBeforeExecute(object requestDto)
来解决这个问题,或者您有任何其他建议吗?
您可以使用异步 Global Request Filter or async Filter attribute。
从 v5.10.4+ 您的服务可以实现 IServiceBeforeFilterAsync
在每个请求之前执行 OnBeforeExecuteAsync()
,例如:
public class MyServices : Service, IServiceBeforeFilterAsync
{
public Task OnBeforeExecuteAsync(object requestDto)
{
//...
}
}