コントローラーでアクション メソッドを見つけようとする (URL ルーティングを支援するための) コードがいくつかあります。
私のコントローラーは次のようになります:
public ActionResult Item(int id)
{
MyViewModel model = new MyViewModel(id);
return View(model);
}
[HttpPost]
public ActionResult Item(MyViewModel model)
{
//do other stuff here
return View(model);
}
次のコードは、url アクションに一致するメソッドを見つけようとします。
//cont is a System.Type object representing the controller
MethodInfo actionMethod = cont.GetMethod(action);
今日、このコードはSystem.Reflection.AmbiguousMatchException: Ambiguous match found
、2 つのメソッドが同じ名前であることを考えると理にかなった a をスローしました。
Type
オブジェクトの使用可能なメソッドを調べたところpublic MethodInfo[] GetMethods();
、特定の名前のメソッドを検索するためのオーバーロードがないように見えることを除いて、私が望むことをしているように見えることがわかりました。
このメソッドを使用して、返されるすべてを検索することもできますが、複数ある場合に、特定の名前を持つクラス内のすべてのメソッドのリストを取得する別の (より簡単な) 方法があるかどうか疑問に思っています。