我有多个项目有多种微服务,每个微服务都包含多个带有api项目的项目。
我想要的是将所有项目程序集(动态加载所有应用程序集)放入db或json文件或其他任何内容。 之后,我将从所有控制器的每个程序集api项目列表中检索。 我到目前为止所做的是将所有控制器仅用于一个微服务(项目)的组件。
这是我的代码:
var result = Assembly.GetExecutingAssembly()
.GetTypes()
.Where(type => typeof(Controller).IsAssignableFrom(type))
.SelectMany(type => type.GetMethods(BindingFlags.Instance | BindingFlags.DeclaredOnly | BindingFlags.Public))
.Where(m => !m.GetCustomAttributes(typeof(System.Runtime.CompilerServices.CompilerGeneratedAttribute), true).Any())
.GroupBy(x => x.DeclaringType.Name) //just to get each action belong to correspondent controller
.Select(x => new
{
Controller = x.Key,
Actions = x.Select(s => s.Name).ToList()
})
.ToList();
提前致谢。