ASP.NET Web API コントローラーにかなり長い Get() メソッドがあります。このようなもの:
public PaginatedResult Get(int perPage = 10, int pageNum = 0, string param1 = null, [...] string param20 = null)
私が望むのは、メソッド シグネチャの一部ではないクエリ パラメータがリクエストに含まれる状況を処理できるようにすることです。つまり、誰かがこれを要求した場合:
/?perPage=10¶n19=foo¶m21=bar
…「『paran19』も『param21』も存在しないので、このクエリの結果には影響しません!」と言えるようになりたいです。
これを処理するために私が考えることができる唯一の方法は、リクエストで GetQueryNameValuePairs() を呼び出し、次にリフレクションを使用して、そのリストを Get() メソッドによって受け入れられたパラメーターと比較することです。しかし、それはこの問題にとってやり過ぎのようです。より良い方法はありますか?理想的には、複数のメソッドに簡単に適用できるほど柔軟な 1 つです。