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





About The Author

Suprotim Agarwal
Suprotim Agarwal, Developer Technologies MVP (Microsoft Most Valuable Professional) is the founder and contributor for DevCurry, DotNetCurry and SQLServerCurry. He is the Chief Editor of a Developer Magazine called DNC Magazine. He has also authored two Books - 51 Recipes using jQuery with ASP.NET Controls. and The Absolutely Awesome jQuery CookBook.

Follow him on twitter @suprotimagarwal.

No comments: