wcf – 如何在(每次)Web API操作之前执行代码?
我有一个Web API接口,我正在尝试适应多租户架构.以前,我们有一个WCF模式,我们将一个参数client id传递给服务,然后将其存储在稍后的代码中.这意味着Client Id不必是传递给每个调用的第一个参数.
我想对Web API做同样的事情,即不要: GetDocument(int clientId,int documentId) 才刚刚: GetDocument(int documentId) 但我需要一些方法来做到以下几点: >从路线获取clientId 所有在呼叫实际执行之前.我有点认为路线会被重写 – 我很好,路由必须有客户端ID,而不是我的API.因此,对GetDefault的调用可能如下所示: /文档/ GetDefault / 1 虽然API是 GetDefault() 思考? TIA. 解决方法
一种方法是自定义ActionFilter.请参阅
here,虽然它与MVC有关,但概念与WebAPI相同:
例如: public class MyActionFilter : ActionFilterAttribute { public override void OnActionExecuting(HttpActionContext actionContext) { //.... } public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext) { //.... } } 并使用它来装饰你的API控制器/动作: [MyActionFilter] public IEnumerable<string> Get() { return new string[] { "value1","value2" }; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |