[英]Determine Parameter Location From ParameterInfo In Web API Controller Method
I have an ASP.Net Web Api controller like this: 我有一个像这样的ASP.Net Web Api控制器:
public class SomeController : ApiController
{
public myObject Post([FromUri]string qsVar, [FromBody]yourObject bVar)
{
return myObject(qsVar, bVar);
}
}
I am writing a documentation generator and need to determine if a parameter is [FromUri]
or [FromBody]
based on it's ParameterInfo
. 我正在编写一个文档生成器,需要根据其
ParameterInfo
确定参数是[FromUri]
还是[FromBody]
。
Type tc = typeof(SomeController);
foreach (MethodInfo m in tc.GetMethods())
{
foreach (ParameterInfo p in m.GetParameters())
{
if (p.isFromBody ???) doThis(); else doThat();
}
}
How do I determine whether a parameter has a [FromUri]
or [FromBody]
flag in an ASP.Net Web Api Controller method? 如何确定参数在ASP.Net Web Api Controller方法中是否具有
[FromUri]
或[FromBody]
标志?
Answer: 回答:
bool isFromUri = p.GetCustomAttributes(false)
.Any(x => x.GetType() == typeof(FromUriAttribute));
You may take a look at the CustomAttributes
property: 您可以看一下
CustomAttributes
属性:
bool hasFromBodyAttribute = p
.CustomAttributes
.Any(x => x.AttributeType == typeof(FromBodyAttribute));
if (hasFromBodyAttribute)
{
doThis();
}
else
{
doThat();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.