2016-06-17 4 views
2

ApiControllerに非同期リソースの初期化に使用できる拡張ポイント/オーバーライドがありますか?私はこのような何かがしたいApiControllerでの非同期初期化

public ValuesController : ApiController 
{ 
    private IFoo _foo; 
    protected async override void InitializeAsync(HttpControllerContext controllerContext) 
    { 
     _foo = await CreateFooAsync(); 
    } 
} 

を私は、各コントローラのアクションでこれを行うことができます知っているが、私は4/5異なるアクションでそれを行うことを避けるしたいと思います。

答えて

2

コアコントローラメソッドを無効にすることができます:ExecuteAsync。このように:

public override async Task<HttpResponseMessage> ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken) { 
    _foo = await CreateFooAsync(); 
    return await base.ExecuteAsync(controllerContext, cancellationToken); 
} 
+0

私はこの1つを逃した...確かに! – Dismissile

関連する問題