Я пытаюсь получить все атрибуты определенного типа, присутствующие в сборке. В моем конкретном случае c у меня есть атрибуты контроллера и другие атрибуты действий (MVC). С помощью этого кода я могу получить то, что хочу, но я совершенно уверен, что есть способ избежать объединения
var assemblyTypes = Assembly.GetExecutingAssembly().GetTypes();
var myAttributes = assemblyTypes
.SelectMany(x => x.GetCustomAttributes<MyAttribute>()).ToList();
myAttributes = myAttributes.Union(assemblyTypes
.SelectMany(x => x.GetMethods())
.SelectMany(x => x.GetCustomAttributes<MyAttribute>())).ToList();
myAttributes = myAttributes.Distinct().ToList();