Vul*_*ary 6 c# asp.net-web-api
给定一个控制器Proxy和一个动作GetInformation。我希望能够调用的方法GetInformation中的Users控制器。两个WebAPI控制器都在同一个项目中,但直接调用如
var controller = new UsersController();
return controller.GetInformation(request);
Run Code Online (Sandbox Code Playgroud)
不起作用
签名是:
public HttpResponseMessage GetInformation(InformationRequest request)
Run Code Online (Sandbox Code Playgroud)
我不想做一个完整的重定向响应,因为我不想在外部公开UserController路由。这仅是内部调用。
对于那些想在不同控制器中解决此API到API方法的人,我们找到了一个可行的解决方案。最初的尝试很接近,只是缺少了一些东西。
var controller = new UserAccountController
{
Request = new HttpRequestMessage(HttpMethod.Post, Request.RequestUri.AbsoluteUri.Replace("/current/route", "/route/to_call"))
};
controller.Request.Properties[HttpPropertyKeys.HttpConfigurationKey] = new HttpConfiguration();
return controller.GetInformation(request);
Run Code Online (Sandbox Code Playgroud)
通过这样做,可以构造目标控制器并直接调用所需的方法。这里最大的复杂性是Uri调整。
| 归档时间: |
|
| 查看次数: |
13486 次 |
| 最近记录: |