zoukankan      html  css  js  c++  java
  • HttpRequestMessage扩展方法

    public static class HttpRequestMessageExtensions
        {
            /// <summary>
            /// Gets the <see cref="HttpConfiguration"/> for the given request.
            /// </summary>
            /// <param name="request">The HTTP request.</param>
            /// <returns>The <see cref="HttpConfiguration"/>.</returns>
            public static HttpConfiguration GetConfiguration(this HttpRequestMessage request)
            {
                if (request == null)
                {
                    throw new ArgumentException("request");
                }
    
                return request.GetProperty<HttpConfiguration>(HttpPropertyKeys.HttpConfigurationKey);
            }
    
            /// <summary>
            /// Gets the <see cref="System.Threading.SynchronizationContext"/> for the given request or null if not available.
            /// </summary>
            /// <param name="request">The HTTP request.</param>
            /// <returns>The <see cref="System.Threading.SynchronizationContext"/> or null.</returns>
            public static SynchronizationContext GetSynchronizationContext(this HttpRequestMessage request)
            {
                if (request == null)
                {
                    throw new ArgumentException("request");
                }
    
                return request.GetProperty<SynchronizationContext>(HttpPropertyKeys.SynchronizationContextKey);
            }
    
            /// <summary>
            /// Gets the <see cref="System.Web.Http.Routing.IHttpRouteData"/> for the given request or null if not available.
            /// </summary>
            /// <param name="request">The HTTP request.</param>
            /// <returns>The <see cref="System.Web.Http.Routing.IHttpRouteData"/> or null.</returns>
            public static IHttpRouteData GetRouteData(this HttpRequestMessage request)
            {
                if (request == null)
                {
                    throw new ArgumentException("request");
                }
    
                return request.GetProperty<IHttpRouteData>(HttpPropertyKeys.HttpRouteDataKey);
            }
    
            public static T GetProperty<T>(this HttpRequestMessage request, string key)
            {
                T value = default(T);
                object @object = null;
                request.Properties.TryGetValue(key, out @object);
                if (@object is T)
                {
                    value = (T)@object;
                }
                else
                {
                    throw new InvalidCastException(string.Format("无效类型转换:{0}", typeof(T).FullName));
                }
                return value;
            }
            
        }
  • 相关阅读:
    Servlet编程寄语
    filter常用功能
    Javascript的自动、定时执行和取消
    CentOS 5安装GIT的基本命令
    EF调用执行Oracle中序列
    WCF使用IIS发布服务的配置
    linux 自学系列:debian更新软件列表、更改源
    shell编程笔记五:select
    linux 自学系列: 改IP地址,主机名及DNS
    shell编程笔记四:case in
  • 原文地址:https://www.cnblogs.com/fanfan-90/p/12048909.html
Copyright © 2011-2022 走看看