在web Api中我正在编写一个自定义属性。在OnActionExecuting方法中,我想获取传递给Action方法的参数并将其强制转换为原始类型。 我正在那样得到参数
public override void OnActionExecuting(HttpActionContext actionContext)
{
ActionParameters = actionContext.ActionArguments;
object param = ActionParameters.First().Value;
var actionInfo = actionContext.ActionDescriptor;
var parameter = actionInfo.GetParameters().First();
string p = parameter.ParameterType.FullName;
Type t = Type.GetType(p + "," + "Models"); //Type of the parameter
}
应该只有一个参数。现在我不知道参数的确切类型。我只知道参数会有几个属性。如何将参数转换为原始类型。
答案 0 :(得分:0)
ActionArguments是一个字典泛型dixtionaryof字符串和object.It将值存储为对象,因此您需要将其强制转换为您期望的类型。
public override void OnActionExecuting(HttpActionContext actionContext)
{
ActionParameters = actionContext.ActionArguments;
if (actionContext.ActionArguments.ContainsKey("Key1"))
{
var val = actionContext.ActionArguments["Key1"] as string;
}
}