dotnet coreの属性を持つすべてのコントローラとアクションを見つける方法は?すべてのコントローラとアクションを見つける方法
public static List<string> GetControllerNames()
{
List<string> controllerNames = new List<string>();
GetSubClasses<Controller>().ForEach(type => controllerNames.Add(type.Name.Replace("Controller", "")));
return controllerNames;
}
public static List<string> ActionNames(string controllerName)
{
var types =
from a in AppDomain.CurrentDomain.GetAssemblies()
from t in a.GetTypes()
where typeof(IController).IsAssignableFrom(t) &&
string.Equals(controllerName + "Controller", t.Name, StringComparison.OrdinalIgnoreCase)
select t;
var controllerType = types.FirstOrDefault();
if (controllerType == null)
{
return Enumerable.Empty<string>().ToList();
}
return new ReflectedControllerDescriptor(controllerType)
.GetCanonicalActions().Select(x => x.ActionName).ToList();
}
が、そのはDOTNETコアで動作していない:.NET Frameworkの 私はこのコードを使用していました。
https://stackoverflow.com/questions/38308713/how-to-find-namespace-of-class-by-its-name-using-reflection-in-net-core –