У меня есть интерфейс и некоторые классы, которые наследуют его.
public interface IFoo {}
public class Bar : IFoo {}
public class Baz : IFoo {}
Если я получу типы, которые реализуют IFoo
, как я могу решить, будет ли тип представлять Bar
или Baz
(без фактического создания объекта)?
// Get all types in assembly.
Type[] theTypes = asm.GetTypes();
// See if a type implement IFoo.
for (int i = 0; i < theTypes.Length; i++)
{
Type t = theTypes[i].GetInterface("IFoo");
if (t != null)
{
// TODO: is t a Bar or a Baz?
}
}