динамически загружать все сборки приложений -asp net core - PullRequest
0 голосов
/ 29 мая 2018

У меня есть несколько проектов, например, несколько микросервисов, каждый из которых содержит несколько проектов с проектом API.

Мне нужно получить все сборки проектов (динамически загружать все сборки приложений) в файл БД или 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();

Заранее спасибо.

...