У меня есть небольшой проект, который я делаю, и я пытаюсь выяснить, возможно ли получить экземпляр каждого класса, который наследуется от определенного интерфейса.
Вот упрощенный пример того, что я пытаюсь выполнить:
public interface IExample
{
string Foo();
}
public class Example1 : IExample
{
public string Foo()
{
return "I came from Example1 !";
}
}
public class Example2 : IExample
{
public string Foo()
{
return "I came from Example2 !";
}
}
//Many more ExampleN's go here
public class ExampleProgram
{
public static void Main(string[] args)
{
var examples = GetExamples();
foreach (var example in examples)
{
Console.WriteLine(example.Foo());
}
}
public static List<IExample> GetExamples()
{
//What goes here?
}
}
Есть ли способ (за исключением жесткого кодирования) для метода GetExamples вернуть список, содержащий экземпляр каждого класса, унаследованного от интерфейса IExample? Любое понимание, которое вы можете дать, будет высоко оценено.