asp.net – 使用HttpRequestMessage.Properties传递每个请求的上下文
发布时间:2020-05-23 22:54:05 所属栏目:asp.Net 来源:互联网
导读:在Web API应用程序中,我使用Castle Windsor提供使用PerWebRequest生命周期配置的服务,并且一切正常在IIS上运行. 但是,当我使用ASP.NET Web API Self Host(Beta)package时,我需要创建一个自定义生命周期,以便根据HTTP请求确定这些服务的范围. 如何使用HttpRequ
|
在Web API应用程序中,我使用Castle Windsor提供使用PerWebRequest生命周期配置的服务,并且一切正常在IIS上运行. 但是,当我使用ASP.NET Web API Self Host(Beta)package时,我需要创建一个自定义生命周期,以便根据HTTP请求确定这些服务的范围. 如何使用HttpRequestMessage.Properties携带每个请求上下文? 解决方法我建议你使用消息处理程序将你的对象设置为HttpRequestMessage.Property:public class MyApplication : HttpApplication
{
protected void Application_Start()
{
RegisterHttpMessageHandlers(GlobalConfiguration.Configuration);
}
public void RegisterHttpMessageHandlers(HttpConfiguration config)
{
config.MessageHandlers.Add(new MyMessageHandler());
}
}
public static class MyHttpMessageHandlerExtensions
{
public static class HttpPropertyKey
{
public static readonly string MyProperty = "MyCompany_MyProperty";
}
public static MyContext GetContext(this HttpRequestMessage request)
{
return (MyContext)request.Properties[HttpPropertyKey.MyProperty ];
}
public static void SetContext(this HttpRequestMessage request,MyContext ctx)
{
request.Properties[HttpPropertyKey.MyProperty] = ctx;
}
}
public class MyMessageHandler : DelegatingHandler
{
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request,CancellationToken cancellationToken)
{
request.SetContext(new MyContext(){/*some your data* |
相关内容
- asp.net – 如何获取HttpPostedFileBase文件的大小
- 什么是asp.net会话超时的单位?
- asp.net – 初学者有一个好主意 – 我可以自己开发吗?
- asp.net – 共享.NET应用程序池
- asp.net – 在打开silverlight项目之前,您需要安装最新的Si
- asp.net中js+jquery添加下拉框值和后台获取示例
- asp.net-mvc – ASP.NET MVC页面不通过3G或某些代理服务器提
- asp.net – 网络应用程序项目v.s.网站项目
- asp.net – 会话固定 – 表单身份验证
- asp.net-mvc – DisplayFor和ValueFor之间的区别
推荐文章
站长推荐
- 在asp.net中读取查询字符串而不指定任何页面名称
- asp.net-mvc – Internet Explorer缓存asp.netmv
- asp.net-mvc – Elmah.MVC在IIS Express下工作但
- asp.net – 什么是crossdomain.xml文件?
- asp.net-ajax – 建议使用不引人注意的AJAX与MVC
- asp.net-mvc – 如何在回发后保持dropdownlist选
- asp.net-mvc – 如何避免打开重定向漏洞并成功登
- asp.net-mvc – SignInManager.PasswordSignInAs
- asp.net-mvc – MVC OAUTH VS2012模板,在哪里输入
- asp.net-mvc-3 – 模型binder属性类型int的问题
热点阅读
