Добавлен  Devion 
                            
                            
                            
                            
                            
                            
                        
                        
                    В общем есть некоторый кастомный аттрибут, который я закрепляю за методами.
Затем мне нужно этот атрибут достать. Но в чем проблема - этот атрибут может встретиться где угодно.
Затем мне нужно этот атрибут достать. Но в чем проблема - этот атрибут может встретиться где угодно.
Сначала я подумал - да чего там, сейчас мигом это исправлю
И написал вот такой код
И написал вот такой код
foreach (Assembly a in AppDomain.CurrentDomain.GetAssemblies())
{
    foreach (Type t in a.GetTypes())
    {
        var methods = t.GetMethods();
        foreach (var method in methods)
        {
            var attr = method.GetCustomAttribute(typeof(MyAttribute));
        }
    }
}
Но это, вызывается целых 5 секунд. Такого я естественно позволить не могу. 
И я вот подумал - а как тогда вызываются всякие эти системные атрибуты? Ведь некоторые из них так же действуют "везде", но почему то от них не возникает тормозов.
И я вот подумал - а как тогда вызываются всякие эти системные атрибуты? Ведь некоторые из них так же действуют "везде", но почему то от них не возникает тормозов.
В общем каким способом я могу значительно уменьшить время на вычисление методов, имеющих мой аттрибут?
Принятый ответ
 Extravert, а ты смотрел какие сборки он возвращает, мб стоит из этого списка исключить системные? И еще наверное все же попробовать использовать не GetTypes а GetExportedTypes
    
        
            
                `
            
            
                
        
    
    ОЖИДАНИЕ РЕКЛАМЫ...
            
                    
                        Чтобы оставить комментарий, пожалуйста, войдите на сайт.
                    
                
            
                                PROGRAMMS
                            

Если еще точнее - для редактора сценариев в атрибуте помечаю сепаратор и название. А дальше подтягиваю эти данные где мне нужно. Атрибуты самый удобный способ пометить такие вещи. Отдельный класс не подходит, ибо пакую в отдельную сборку свой плагин, а это все будет ущербно выглядеть.
Ред. Devion