目前我有一个像这样的类列表:
public List<Algo> AlgoList = new List<Algo>
{
new BastionAlgo(),
new BitcoreAlgo(),
new Blake2SAlgo(),
new BlakeAlgo(),
new BlakeCoinAlgo(),
new BmwAlgo(),
new C11FlaxAlgo(),
new CryptolightAlgo(),
new CryptonightAlgo(),
...
};
Run Code Online (Sandbox Code Playgroud)
当我添加和删除类时,我宁愿不必维护一个长列表.有没有办法找到并实例化在.net核心2中扩展另一个类的所有类?
提前谢谢你的帮助.
是的,请参阅获取实现接口的所有类型
var type = typeof(Algo);
var types = AppDomain.CurrentDomain.GetAssemblies()
.SelectMany(s => s.GetTypes())
.Where(p => type.IsAssignableFrom(p));
Run Code Online (Sandbox Code Playgroud)
如果它们都具有无参数构造函数,则可以使用Activator.CreateInstance创建实例
AlgoList = types.Select(t => Activator.CreateInstance(t)).ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
51 次 |
| 最近记录: |