在我的程序中,我使用多个来源来获取数据。实际的实现并不重要,但它们都实现了一个“Source”接口,该接口调用在给定特定输入的情况下获取数据。
当我需要数据时,我想一次调用所有源并对数据进行处理。
目前我这样做:
List<Source> sources = new List<Source>()
sources.Add(new SourceA());
sources.Add(new SourceB());
//...
//----
foreach (Source source in sources)
{
string data = source.getData(input);
//do something with the data
}
问题是我需要硬编码将源插入到列表中。有没有办法(也许使用反射)自动化这个过程?我希望该列表包含所有实现“源”接口的对象 - 而不必自己对其进行硬编码。