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