gpt4 book ai didi

c# - 如何在从特定类型 C# 继承的程序集中查找所有类型

转载 作者:IT王子 更新时间:2023-10-29 03:37:30 24 4
gpt4 key购买 nike

如何获得从特定其他类型继承的所有类型的集合?

最佳答案

类似于:

public IEnumerable<Type> FindDerivedTypes(Assembly assembly, Type baseType)
{
return assembly.GetTypes().Where(t => baseType.IsAssignableFrom(t));
}

如果您需要处理泛型,这会变得有些棘手(例如,传入开放的 List<> 类型,但期望取回派生自 List<int> 的类型)。否则它很简单:)

如果你想排除类型本身,你可以很容易地做到这一点:

public IEnumerable<Type> FindDerivedTypes(Assembly assembly, Type baseType)
{
return assembly.GetTypes().Where(t => t != baseType &&
baseType.IsAssignableFrom(t));
}

请注意,这还将允许您指定一个接口(interface)并找到实现它的所有类型,而不是像 Type.IsSubclassOf 那样只使用类。

关于c# - 如何在从特定类型 C# 继承的程序集中查找所有类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1268397/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com