c# – 如何使用从程序集动态加载的接口并调用其成员
发布时间:2020-12-15 23:51:09 所属栏目:百科 来源:网络整理
导读:我有一些代码来加载程序集并获取所有类型,实现某个接口,就像这样(假设asm是一个有效的加载程序集). var results = from type in asm.GetTypes() where typeof(IServiceJob).IsAssignableFrom(type) select type; 现在我陷入困境:我需要创建这些对象的实例并
我有一些代码来加载程序集并获取所有类型,实现某个接口,就像这样(假设asm是一个有效的加载程序集).
var results = from type in asm.GetTypes() where typeof(IServiceJob).IsAssignableFrom(type) select type; 现在我陷入困境:我需要创建这些对象的实例并在对象上调用方法和属性.我需要将对已创建对象的引用存储在一个数组中以供以后使用. 解决方法
哦哇 – 我前几天只有
blogged about this.这是我返回实现给定接口的所有类型的实例的方法:
private static IEnumerable<T> InstancesOf<T>() where T : class { var type = typeof(T); return from t in type.Assembly.GetExportedTypes() where t.IsClass && type.IsAssignableFrom(t) && t.GetConstructor(new Type[0]) != null select (T)Activator.CreateInstance(t); } 如果您重构它以接受汇编参数而不是使用接口的程序集,它就会变得足够灵活以满足您的需要. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |