调用一个方法,我得到了我实现接口的所有类。我想调用一个方法创建如何使用反射
var types =AppDomain.CurrentDomain.GetAssemblies().ToList()
.SelectMany(s => s.GetTypes())
.Where(t => typeof(IManagerReport).IsAssignableFrom(t));
Console.WriteLine("Processing manager reports..");
foreach(var TheType in types)
{
//error here
var temptype = Activator.CreateInstance(TheType) as IManagerReport;
temptype.Load();
temptype.Save();
Console.WriteLine("Saved to: " + temptype.SavePath);
}
所产生错误的对象的实例时,是在这里:
无法创建接口的实例
东西这在上'.SelectMany'和'.Where'之间的新行:'。凡(T!=> t.IsInterface)',看看有没有什么帮助。 – 2012-03-13 17:47:33
的标题有误导之嫌,你的问题无关,与调用方法,它的一切做的事实,你想构建一个接口的实例。 – 2012-03-13 17:48:23
对不起,如果你喜欢,你可以改变标题。不知道这个叫 – Luke101 2012-03-13 17:50:24