通过LINQ将ParameterInfo []转换为RouteValueDictionary

时间:2017-09-16 18:40:51

标签: c# asp.net-mvc linq asp.net-mvc-5

基本上,我需要使用LINQ将ParameterInfo[]数组转换为RouteValueDictionary

我从ParameterInfo[]对象(通过反射)获取MethodInfo数组,通过调用obj.GetParameters(),我需要一个RouteValueDictionary对象。

我尝试了这个,但不幸的是它无法正常工作:

new RouteValueDictionary(obj.GetParameters().Select(r => new { r.Name = r.DefaultValue }))

1 个答案:

答案 0 :(得分:2)

RouteValueDirectory有一个构造函数,可以获取字典并且:

  

初始化RouteValueDictionary类的新实例,并添加指定集合中的元素。

因此,使用linq的ToDictionary来构建字典,然后使用匹配的构造函数:

new RouteValueDictionary(obj.GetParameters().ToDictionary(key => key.Name, 
                                                          value => value.DefaultValue }))