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)
    {
        //...
    }
}