2017-09-16 9 views
1

基本的には、ParameterInfo[]の配列をLINQを使用してRouteValueDictionaryに変換する必要があります。LINQを介してParameterInfo []をRouteValueDictionaryに変換します

私はobj.GetParameters()を呼び出すことによって、(リフレクション経由)MethodInfoオブジェクトからParameterInfo[]配列を取得しています、と私はそれからRouteValueDictionaryオブジェクトが必要です。

私はこれを試してみましたが、残念ながらそれは働いていません。

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

答えて

2

RouteValueDirectoryは辞書を取得し、コンストラクタを持っています

はRouteValueDictionaryクラスの新しいインスタンスを初期化してから要素を追加します指定されたコレクションしたがって

辞書、次いでマッチングコンストラクタを形成するために、LINQのToDictionaryを使用:

new RouteValueDictionary(obj.GetParameters().ToDictionary(key => key.Name, 
                  value => value.DefaultValue })) 
関連する問題