用反射。
Assembly.Load/LoadFrom/LoadFile可以加载程序集。因为一般反射都反射的是其他dll里头的东西。当然,可以直接反射当前程序集中的dll,如果这样的话,这一步不用。
加载好程序集后,Type[] types = asm.GetTypes();取得全部的类型,然后用IsClass判断是不是类,GetInterface(String)==null判断是不是实现了目标interface。实现了,用Activator.CreateInstance()创建实例。
很详细