Finding all classes with a particular attribute

后端 未结 2 1681
北荒
北荒 2020-12-03 09:52

I\'ve got a .NET library in which I need to find all the classes which have a custom attribute I\'ve defined on them, and I want to be able to find them on-the-fly when an a

2条回答
  •  不思量自难忘°
    2020-12-03 10:18

    Mark posted a good answer, but here is a linq free version if you prefer it:

        public static IEnumerable GetTypesWith(bool inherit) where TAttribute : Attribute
        {
            var output = new List();
    
            var assemblies = AppDomain.CurrentDomain.GetAssemblies();
    
            foreach (var assembly in assemblies)
            {
                var assembly_types = assembly.GetTypes();
    
                foreach (var type in assembly_types)
                {
                    if (type.IsDefined(typeof(TAttribute), inherit))
                        output.Add(type);
                }
            }
    
            return output;
        }
    

提交回复
热议问题