Getting all types that implement an interface

前端 未结 17 1007
不思量自难忘°
不思量自难忘° 2020-11-22 00:34

Using reflection, how can I get all types that implement an interface with C# 3.0/.NET 3.5 with the least code, and minimizing iterations?

This is what I want to re-

17条回答
  •  礼貌的吻别
    2020-11-22 01:26

    Mine would be this in c# 3.0 :)

    var type = typeof(IMyInterface);
    var types = AppDomain.CurrentDomain.GetAssemblies()
        .SelectMany(s => s.GetTypes())
        .Where(p => type.IsAssignableFrom(p));
    

    Basically, the least amount of iterations will always be:

    loop assemblies  
     loop types  
      see if implemented.
    

提交回复
热议问题