私のMVC 3プロジェクトでは、dllといくつかのロードでフォルダーbinをスキャンする方法があります。次に、フィルタリングしてリストコントローラークラスを取得します。次に、フィルタリングして、ActionResult を返すメソッドのリストを取得しようとしました。しかし、複製方法があります。属性でフィルタリングしてみます。しかし何も得られなかった
private void GetControllers()
{
IEnumerable<FileInfo> files = this.GetFileList();
foreach (var fileInfo in files)
{
if (fileInfo.Name != "SGN.Framework.dll" && fileInfo.Name != "SGN.Controls.dll")
{
Assembly assembly = Assembly.LoadFile(fileInfo.FullName);
AssemblyName asamName = assembly.GetName();
IList<Type> myType =
assembly.GetTypes().Where(item => item.Name.Contains("Controller")).Where(
item => item.Name != "AdminsController" && item.Name != "ModuleController").ToList();
foreach (var type in myType)
{
var m =
type.GetMethods().Where(
item =>
item.ReturnType == typeof(ActionResult)).Except(type.GetCustomAttributes(true).Where(i => i != typeof(ActionInfoAttribute)));
}
}
}
}