• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# HttpActionDescriptor类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中HttpActionDescriptor的典型用法代码示例。如果您正苦于以下问题:C# HttpActionDescriptor类的具体用法?C# HttpActionDescriptor怎么用?C# HttpActionDescriptor使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



HttpActionDescriptor类属于命名空间,在下文中一共展示了HttpActionDescriptor类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: ElevateRouteData

        // Given an action, update the Controller Context's route data to use that action.
        // If you call action selection again after this method, it should still return the same result. 
        internal static void ElevateRouteData(this HttpControllerContext controllerContext, HttpActionDescriptor actionDescriptorSelected)
        {
            IHttpRouteData routeData = controllerContext.RouteData;

            IEnumerable<IHttpRouteData> multipleRouteData = routeData.GetSubRoutes();
            if (multipleRouteData == null)
            {
                return;
            }

            foreach (IHttpRouteData subData in multipleRouteData)
            {
                CandidateAction[] candidates = subData.Route.GetDirectRouteCandidates();

                if (candidates != null)
                {
                    foreach (CandidateAction candidate in candidates)
                    {
                        if (candidate.ActionDescriptor.Equals(actionDescriptorSelected))
                        {
                            controllerContext.RouteData = subData;
                            return;
                        }
                    }
                }
            }
        }
开发者ID:khorchani,项目名称:aspnetwebstack,代码行数:29,代码来源:HttpControllerContextExtensions.cs


示例2: GetModel

        public override IEdmModel GetModel(Type elementClrType, HttpRequestMessage request,
            HttpActionDescriptor actionDescriptor)
        {
            // Get model for the request
            IEdmModel model = request.ODataProperties().Model;

            if (model == null)
            {
                // user has not configured anything or has registered a model without the element type
                // let's create one just for this type and cache it in the action descriptor
                model = actionDescriptor.Properties.GetOrAdd("System.Web.OData.Model+" + elementClrType.FullName, _ =>
                {
                    ODataConventionModelBuilder builder =
                        new ODataConventionModelBuilder(actionDescriptor.Configuration, isQueryCompositionMode: true);
                    builder.EnableLowerCamelCase();
                    EntityTypeConfiguration entityTypeConfiguration = builder.AddEntityType(elementClrType);
                    builder.AddEntitySet(elementClrType.Name, entityTypeConfiguration);
                    IEdmModel edmModel = builder.GetEdmModel();
                    Contract.Assert(edmModel != null);
                    return edmModel;
                }) as IEdmModel;
            }

            Contract.Assert(model != null);
            return model;
        }
开发者ID:tanjinfu,项目名称:WebApiODataSamples,代码行数:26,代码来源:MyEnableQueryAttribute.cs


示例3: HasQueryableAttribute

 private static bool HasQueryableAttribute(HttpActionDescriptor actionDescriptor)
 {
     #pragma warning disable 0618 // Disable obsolete warning for QueryableAttribute.
     return actionDescriptor.GetCustomAttributes<QueryableAttribute>(inherit: true).Any() ||
          actionDescriptor.ControllerDescriptor.GetCustomAttributes<QueryableAttribute>(inherit: true).Any();
     #pragma warning restore 0618
 }
开发者ID:ZhaoYngTest01,项目名称:WebApi,代码行数:7,代码来源:QueryFilterProvider.cs


示例4: ElevateRouteData

        // Given an action, update the Controller Context's route data to use that action.
        // If you call action selection again after this method, it should still return the same result. 
        internal static void ElevateRouteData(this HttpControllerContext controllerContext, HttpActionDescriptor actionDescriptorSelected)
        {
            IHttpRouteData routeData = controllerContext.RouteData;

            IEnumerable<IHttpRouteData> multipleRouteData = routeData.GetSubRoutes();
            if (multipleRouteData == null)
            {
                return;
            }

            foreach (IHttpRouteData subData in multipleRouteData)
            {
                ReflectedHttpActionDescriptor[] actionDescriptors = subData.Route.GetDirectRouteActions();
                if (actionDescriptors != null)
                {
                    foreach (ReflectedHttpActionDescriptor ad in actionDescriptors)
                    {
                        if (ad.Equals(actionDescriptorSelected))
                        {
                            controllerContext.RouteData = subData;
                            return;
                        }
                    }
                }
            }
        }
开发者ID:jaceenet,项目名称:aspnetwebstack,代码行数:28,代码来源:HttpControllerContextExtensions.cs


示例5: CreateHttpRequestMessage

        private static HttpRequestMessage CreateHttpRequestMessage(HttpActionDescriptor actionDescriptor, ODataRoute oDataRoute, HttpConfiguration httpConfig)
        {
            Contract.Requires(httpConfig != null);
            Contract.Requires(oDataRoute != null);
            Contract.Requires(httpConfig != null);
            Contract.Ensures(Contract.Result<HttpRequestMessage>() != null);

            Contract.Assume(oDataRoute.Constraints != null);

            var httpRequestMessage = new HttpRequestMessage(actionDescriptor.SupportedHttpMethods.First(), "http://any/");

            var requestContext = new HttpRequestContext
            {
                Configuration = httpConfig
            };
            httpRequestMessage.SetConfiguration(httpConfig);
            httpRequestMessage.SetRequestContext(requestContext);

            var httpRequestMessageProperties = httpRequestMessage.ODataProperties();
            Contract.Assume(httpRequestMessageProperties != null);
            httpRequestMessageProperties.Model = oDataRoute.GetEdmModel();
            httpRequestMessageProperties.RouteName = oDataRoute.GetODataPathRouteConstraint().RouteName;
            httpRequestMessageProperties.RoutingConventions = oDataRoute.GetODataPathRouteConstraint().RoutingConventions;
            httpRequestMessageProperties.PathHandler = oDataRoute.GetODataPathRouteConstraint().PathHandler;
            return httpRequestMessage;
        }
开发者ID:bigred8982,项目名称:Swashbuckle.OData,代码行数:26,代码来源:AttributeRouteStrategy.cs


示例6: GetParameterValuePairs

        private IDictionary<string, object> GetParameterValuePairs(HttpActionDescriptor actionDescriptor)
        {
            IDictionary<string, object> parameterValuePairs = new Dictionary<string, object>();

            foreach (SwaggerDefaultValue defaultValue in actionDescriptor.GetCustomAttributes<SwaggerDefaultValue>())
            {
                parameterValuePairs.Add(defaultValue.Name, defaultValue.Value);
            }

            foreach (var parameter in actionDescriptor.GetParameters())
            {
                if (!parameter.ParameterType.IsPrimitive)
                {
                    foreach (PropertyInfo property in parameter.ParameterType.GetProperties())
                    {
                        var defaultValue = GetDefaultValue(property);

                        if (defaultValue != null)
                        {
                            parameterValuePairs.Add(property.Name, defaultValue);
                        }
                    }
                }
            }

            return parameterValuePairs;
        }
开发者ID:sudarsanan-krishnan,项目名称:DynamicsCRMConnector,代码行数:27,代码来源:AddDefaultsOpFilter.cs


示例7: CreateActionContext

 public static HttpActionContext CreateActionContext(HttpControllerContext controllerContext = null, HttpActionDescriptor actionDescriptor = null)
 {
     HttpControllerContext context = controllerContext ?? CreateControllerContext();
     HttpActionDescriptor descriptor = actionDescriptor ?? CreateActionDescriptor();
     descriptor.ControllerDescriptor = context.ControllerDescriptor;
     return new HttpActionContext(context, descriptor);
 }
开发者ID:nazhir,项目名称:kawaldesa,代码行数:7,代码来源:ContextUtils.cs


示例8: GetWrapResultAttributeOrNull

        public static WrapResultAttribute GetWrapResultAttributeOrNull(HttpActionDescriptor actionDescriptor)
        {
            if (actionDescriptor == null)
            {
                return null;
            }

            //Try to get for dynamic APIs (dynamic web api actions always define __OwDynamicApiDontWrapResultAttribute)
            var wrapAttr = actionDescriptor.Properties.GetOrDefault("__OwDynamicApiDontWrapResultAttribute") as WrapResultAttribute;
            if (wrapAttr != null)
            {
                return wrapAttr;
            }

            //Get for the action
            wrapAttr = actionDescriptor.GetCustomAttributes<WrapResultAttribute>().FirstOrDefault();
            if (wrapAttr != null)
            {
                return wrapAttr;
            }

            //Get for the controller
            wrapAttr = actionDescriptor.ControllerDescriptor.GetCustomAttributes<WrapResultAttribute>().FirstOrDefault();
            if (wrapAttr != null)
            {
                return wrapAttr;
            }

            //Not found
            return null;
        }
开发者ID:zhongkai1010,项目名称:OneWork,代码行数:31,代码来源:HttpActionDescriptorHelper.cs


示例9: GetMember

        private Member GetMember(HttpActionDescriptor actionDescriptor)
        {
            var reflectedActionDescriptor = actionDescriptor as ReflectedHttpActionDescriptor;
            if (reflectedActionDescriptor == null)
                return new Member();


            var xMember = _xMembers.Elements().FirstOrDefault(x => x.Attribute("name").Value == "M:" + GetMemberName(reflectedActionDescriptor.MethodInfo));
            if (xMember == null)
                return new Member();

            var xSummary = xMember.Element("summary");
            var xRemarks = xMember.Element("remarks");

            return new Member()
            {
                Summary = xSummary != null ? xSummary.Value : null,
                Remarks = xRemarks != null ? xRemarks.Value : null,
                Parameters = xMember.Elements("param").Select(p => new XParameter()
                {
                    Name = p.Attribute("name").Value,
                    Value = p.Value
                })
            };
        }
开发者ID:Tom-Kennedy,项目名称:Swagger.Net,代码行数:25,代码来源:XmlCommentDocumentationProvider.cs


示例10: GetDocumentation

		/// <summary>
		/// Gets the documentation based on <see cref="T:System.Web.Http.Controllers.HttpActionDescriptor" />.
		/// </summary>
		/// <param name="actionDescriptor">The action descriptor.</param>
		/// <returns>The documentation for the action.</returns>
		public virtual string GetDocumentation(HttpActionDescriptor actionDescriptor)
		{
			var methodNode = this.GetMethodNode(actionDescriptor);

			var s = new List<string>
						{
							GetTagValueForAction(methodNode, "summary"), 
							GetTagValueForAction(methodNode, "remarks")
						};

			// Add message if controller requires authorization
			if (actionDescriptor.GetCustomAttributes<AuthorizeAttribute>().Any())
			{
				s.Add("<p><i class='fa fa-lock'></i> Requires authorization!</p>");
			}

			// Add message if action is marked as Obsolete
			ObsoleteAttribute obsoleteAttribute = actionDescriptor.GetCustomAttributes<ObsoleteAttribute>().FirstOrDefault();
			if (obsoleteAttribute != null)
			{
				s.Add(string.Format("<p><i class='fa fa-warning'></i> This action is Obsolete: {0}</p>",
					string.IsNullOrEmpty(obsoleteAttribute.Message) ? "<i>unknown reason</i>" : obsoleteAttribute.Message));
			}

			return string.Join("", s.Where(x => !string.IsNullOrEmpty(x)));
		}
开发者ID:tarmopr,项目名称:Microsoft.AspNet.WebApi.HelpPage.Ex,代码行数:31,代码来源:MultipleXmlDocumentationProvider.cs


示例11: InvokeUsingActionResultAsync

        private static async Task<HttpResponseMessage> InvokeUsingActionResultAsync(HttpActionContext actionContext,
            HttpActionDescriptor actionDescriptor, CancellationToken cancellationToken)
        {
            Contract.Assert(actionContext != null);

            HttpControllerContext controllerContext = actionContext.ControllerContext;

            object result = await actionDescriptor.ExecuteAsync(controllerContext, actionContext.ActionArguments,
                cancellationToken);

            if (result == null)
            {
                throw new InvalidOperationException(SRResources.ApiControllerActionInvoker_NullHttpActionResult);
            }

            IHttpActionResult actionResult = result as IHttpActionResult;

            if (actionResult == null)
            {
                throw new InvalidOperationException(Error.Format(
                    SRResources.ApiControllerActionInvoker_InvalidHttpActionResult, result.GetType().Name));
            }

            HttpResponseMessage response = await actionResult.ExecuteAsync(cancellationToken);

            if (response == null)
            {
                throw new InvalidOperationException(
                    SRResources.ResponseMessageResultConverter_NullHttpResponseMessage);
            }

            response.EnsureResponseHasRequest(actionContext.Request);

            return response;
        }
开发者ID:samgithub-duplicate,项目名称:aspnetwebstack,代码行数:35,代码来源:ApiControllerActionInvoker.cs


示例12: GetDocumentation

        public string GetDocumentation(HttpActionDescriptor actionDescriptor)
        {
            XPathNavigator memberNode = GetMemberNode(actionDescriptor);

            if (memberNode != null)
            {
                XPathNavigator summaryNode = memberNode.SelectSingleNode("summary");
                XPathNavigator jsonNode = memberNode.SelectSingleNode("jsonResponse");

                if (summaryNode != null)
                {
                    var docDescription = new StringBuilder();

                    docDescription.Append(summaryNode.Value.Trim().Replace("[br]", "<br/>"));

                    if (jsonNode != null)
                    {
                        docDescription.AppendLine("<div class='json' style='display: none;'>");
                        docDescription.Append(jsonNode.Value.Trim());
                        docDescription.AppendLine("</div>");

                        docDescription.AppendLine("<pre>");
                        docDescription.AppendLine("</pre>");

                    }

                    return docDescription.ToString();
                }

            }

            return string.Empty;
        }
开发者ID:ahmetoz,项目名称:Photopia,代码行数:33,代码来源:XmlCommentDocumentationProvider.cs


示例13: Map

 public HttpParameterDescriptor Map(Parameter swaggerParameter, int parameterIndex, HttpActionDescriptor actionDescriptor)
 {
     var httpParameterDescriptors = actionDescriptor.GetParameters();
     Contract.Assume(httpParameterDescriptors != null);
     return httpParameterDescriptors
         .SingleOrDefault(descriptor => string.Equals(descriptor.ParameterName, swaggerParameter.name, StringComparison.CurrentCultureIgnoreCase));
 }
开发者ID:bigred8982,项目名称:Swashbuckle.OData,代码行数:7,代码来源:MapByParameterName.cs


示例14: Map

 public HttpParameterDescriptor Map(Parameter swaggerParameter, int parameterIndex, HttpActionDescriptor actionDescriptor)
 {
     // Maybe the parameter is a key parameter, e.g., where Id in the URI path maps to a parameter named 'key'
     if (swaggerParameter.description != null && swaggerParameter.description.StartsWith("key:"))
     {
         // Find either a single 'key' in the route or composite keys
         // which take the form of key<parameter name>
         var keyParameterName = swaggerParameter
                                 .description
                                 .Replace(FindKeyReplacementSubStr, 
                                             String.Empty)
                                 .ToLower();
         var parameterDescriptor = 
             actionDescriptor
                 .GetParameters()?
                 .SingleOrDefault(descriptor =>
                     descriptor.ParameterName.ToLower() == KeyName
                     || descriptor.ParameterName.ToLower().Equals(keyParameterName)
                 );
         if (parameterDescriptor != null && !parameterDescriptor.IsODataLibraryType())
         {
             var httpControllerDescriptor = actionDescriptor.ControllerDescriptor;
             Contract.Assume(httpControllerDescriptor != null);
             return new ODataParameterDescriptor(swaggerParameter.name, parameterDescriptor.ParameterType, parameterDescriptor.IsOptional, parameterDescriptor)
             {
                 Configuration = httpControllerDescriptor.Configuration,
                 ActionDescriptor = actionDescriptor,
                 ParameterBinderAttribute = parameterDescriptor.ParameterBinderAttribute
             };
         }
     }
     return null;
 }
开发者ID:rbeauchamp,项目名称:Swashbuckle.OData,代码行数:33,代码来源:MapByDescription.cs


示例15: ActionHasChangeSetEntityParameter

		internal static bool ActionHasChangeSetEntityParameter(HttpActionDescriptor actionDescriptor)
		{
			Contract.Assert(actionDescriptor != null);

			var parameters = actionDescriptor.GetParameters();
			return (parameters.Count > 0) && IsChangeSetEntityParameter(parameters[0]);
		}
开发者ID:mdabbagh88,项目名称:ODataServer,代码行数:7,代码来源:ChangeSetEntityModelBinder.cs


示例16: GetResponseDocumentation

 /// <summary>
 /// Gets the action's response documentation based on <see cref="System.Web.Http.Controllers.HttpActionDescriptor"/>.
 /// </summary>
 /// <param name="actionDescriptor">The action descriptor.</param>
 /// <returns>The documentation for the controller.</returns>
 public string GetResponseDocumentation(HttpActionDescriptor actionDescriptor)
 {
     return this.sources
         .Select(source => source.GetResponseDocumentation(actionDescriptor))
         .Where(documentation => !string.IsNullOrEmpty(documentation))
         .FirstOrDefault();
 }
开发者ID:XopcT,项目名称:LocalizedHelpPage,代码行数:12,代码来源:MultipleSourceDocumentationProvider.cs


示例17: GetNewActionDescriptor

        private HttpActionDescriptor GetNewActionDescriptor(
            VersionNumber theRequestedApiVersion, 
            HttpActionDescriptor theOriginalHttpActionDescriptor)
        {
            var aApiVersionAttributes = theOriginalHttpActionDescriptor.GetCustomAttributes<ApiVersionAttribute>();
            if (aApiVersionAttributes == null || aApiVersionAttributes.Count == 0)
            {
                return theOriginalHttpActionDescriptor;
            }

            var aActionMappings = GetActionMapping(theOriginalHttpActionDescriptor.ControllerDescriptor);
            var aMatchedActionDescriptorMappings = new Dictionary<VersionNumber, HttpActionDescriptor>();
            foreach (var aApiVersionAttribute in aApiVersionAttributes)
            {
                var aActionName = aApiVersionAttribute.OperatioName;
                if (!aActionMappings.Contains(aActionName))
                {
                    continue;
                }

                var aHttpActionDescriptor = aActionMappings[aActionName].ElementAt(0);
                aMatchedActionDescriptorMappings[aApiVersionAttribute.VersionNumber] = aHttpActionDescriptor;
            }

            // this mapping could be cached
            if (aMatchedActionDescriptorMappings.Count == 0)
            {
                return theOriginalHttpActionDescriptor;
            }

            // customize version select logic here
            return CustomizedActionDescriptorSelector(theRequestedApiVersion, aMatchedActionDescriptorMappings);
        }
开发者ID:Elhx,项目名称:hxreport,代码行数:33,代码来源:WsActionSelector.cs


示例18: CreateParameterDescription

        private IList<ApiParameterDescription> CreateParameterDescription(HttpActionBinding actionBinding,HttpActionDescriptor actionDescriptor)
        {
            IList<ApiParameterDescription> parameterDescriptions = new List<ApiParameterDescription>();
            // try get parameter binding information if available
            if (actionBinding != null)
            {
                HttpParameterBinding[] parameterBindings = actionBinding.ParameterBindings;
                if (parameterBindings != null)
                {
                    foreach (HttpParameterBinding parameter in parameterBindings)
                    {
                        parameterDescriptions.Add(CreateParameterDescriptionFromBinding(parameter));
                    }
                }
            }
            else
            {
                Collection<HttpParameterDescriptor> parameters = actionDescriptor.GetParameters();
                if (parameters != null)
                {
                    foreach (HttpParameterDescriptor parameter in parameters)
                    {
                        parameterDescriptions.Add(CreateParameterDescriptionFromDescriptor(parameter));
                    }
                }
            }

            return parameterDescriptions;
        }
开发者ID:ZhaoRd,项目名称:aspnetboilerplate,代码行数:29,代码来源:AbpApiExplorer.cs


示例19: Name

 public static string Name(HttpActionDescriptor actionDescriptor)
 {
     return string.Format(Format,
         actionDescriptor.ControllerDescriptor.ControllerType.FullName,
         actionDescriptor.ActionName,
         ParameterDescriptions(actionDescriptor));
 }
开发者ID:RichieYang,项目名称:hypermedia.net,代码行数:7,代码来源:AutoNamingRouteProvider.cs


示例20: GetActionRouteFactories

 protected override IReadOnlyList<IDirectRouteFactory> GetActionRouteFactories(HttpActionDescriptor actionDescriptor)
 {
     //Honor inherited route attributes, but only for the MicroCms.WebApi assembly.
     // To reduce conflicts and changing global behavior for apps that host MicroCms Web API
     if (IsCmsApiController(actionDescriptor.ControllerDescriptor.ControllerType))
         return actionDescriptor.GetCustomAttributes<IDirectRouteFactory>(true);
     return base.GetActionRouteFactories(actionDescriptor);
 }
开发者ID:Steinerd,项目名称:MicroCms,代码行数:8,代码来源:CmsDirectRouteProvider.cs



注:本文中的HttpActionDescriptor类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# HttpApplication类代码示例发布时间:2022-05-24
下一篇:
C# HtmlTreeMode类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap