Menus

Tuesday, December 4, 2012

Determine all Types that Implement an Interface

I recently saw an interesting discussion on a forum. The discussion was about finding all the types that implement a particular interface. Here’s a code that lists all the types implementing a particular interface:
C#
using System.Linq;
public static void Main(string[] args)
{
    var t = typeof(IYourInterfaceName);
    var assemblyTypes = AppDomain.CurrentDomain.GetAssemblies()
        .SelectMany(typ => typ.GetTypes())
        .Where(x => t.IsAssignableFrom(x));
    foreach (var v in assemblyTypes)
    {
        Console.WriteLine(v.FullName);
    }          
    Console.ReadLine();
}
VB.NET
Public Shared Sub Main(ByVal args() As String)
    Dim t = GetType(IYourInterfaceName)
    Dim assemblyTypes = AppDomain.CurrentDomain.GetAssemblies() _
    .SelectMany(Function(typ) typ.GetTypes()) _
    .Where(Function(x) t.IsAssignableFrom(x))
    For Each v In assemblyTypes
        Console.WriteLine(v.FullName)
    Next v
    Console.ReadLine()
End Sub

No comments:

Post a Comment