asp.net-web-api – 如何在WebApi中获取HttpRequestMessage而不
发布时间:2020-12-16 09:47:41 所属栏目:asp.Net 来源:网络整理
导读:我发现有几个消息来源说你不应该在WebApi中使用HttpContext.Current但是没有人说你应该如何处理我们曾经使用HttpContext.Current的情况. 例如,我有一个LinkProvider类,它为对象创建链接. (简化以保持主题). public abstract class LinkProviderT : ILinkProv
我发现有几个消息来源说你不应该在WebApi中使用HttpContext.Current但是没有人说你应该如何处理我们曾经使用HttpContext.Current的情况.
例如,我有一个LinkProvider类,它为对象创建链接. (简化以保持主题). public abstract class LinkProvider<T> : ILinkProvider<T> { protected ILink CreateLink(string linkRelation,string routeName,RouteValueDictionary routeValues) { var context = System.Web.HttpContext.Current.Request.RequestContext; var urlHelper = new System.Web.Mvc.UrlHelper(context); var url = string.Format("{0}{1}",context.HttpContext.Request.Url.GetLeftPart(UriPartial.Authority),urlHelper.RouteUrl(routeName,routeValues)); ///... return new Link(linkRelation,url); } } 这个类由MediaTypeFormatter使用. 此类应使用来自原始请求的同一主机构建链接,并利用原始请求中的任何路由值. 但是……如何获得HttpRequestMessage?这将由MediaTypeFormatter封装 – 但它也没有. 必须有一个简单的方法来获取HttpRequestMessage – 我可以忽略什么? 谢谢 乔恩 解决方法
我最终创建了以下基础Formatter,它公开了请求,现在我可以将它传递给LinkProvider.
public class JsonMediaTypeFormatterBase : JsonMediaTypeFormatter { public override MediaTypeFormatter GetPerRequestFormatterInstance(Type type,System.Net.Http.HttpRequestMessage request,MediaTypeHeaderValue mediaType) { Request = request; return base.GetPerRequestFormatterInstance(type,request,mediaType); } protected HttpRequestMessage Request { get; set; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 构建新的大型ASP.NET MVC2和EF4 VS2010解决
- asp.net – 文本框的默认值
- asp.net – MVC3 Action作为一个简单的Web服务
- ASP.NET 4.5 C#Forms拒绝登录页面的身份验证访问
- asp.net-mvc-3 – 什么是MVC 3中的ModelState类?
- asp.net-core – 实体框架核心服务默认生命周期
- 删除ASP.NET MVC 4路由到应用程序根目录中的尾随斜杠
- asp.net-mvc – 是否可以使用自定义错误页面与MVC网站,但不
- asp.net – 为.Net使用HighchartsExport库我得到空白页面
- asp.net-mvc – 在MVC3中渲染导航
推荐文章
站长推荐
热点阅读