动态加载所有应用程序组件-asp net core

时间:2018-05-29 09:38:57

标签: c# asp.net-core .net-assembly microservices

我有多个项目有多种微服务,每个微服务都包含多个带有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();

提前致谢。

0 个答案:

没有答案