How to determine if a type implements an interface with C# reflection
You have a few choices: typeof(IMyInterface).IsAssignableFrom(typeof(MyType)) typeof(MyType).GetInterfaces().Contains(typeof(IMyInterface)) With C# 6 you can use typeof(MyType).GetInterface(nameof(IMyInterface)) != null For a generic interface, it’s a bit different. typeof(MyType).GetInterfaces().Any(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IMyInterface<>))