0
我发现这个answer到我的问题的第一部分。但它也正在返回我的集体中的界面。获取通用接口的所有具体实现
我试图得到一个接口
public interface IPermissionAccessDetails<T,TZ>
{
List<PermissionAccessDetails<T,TZ>> AccessDetails { get; }
}
这里的所有具体实现是唯一的具体实现(到目前为止):
public class BillingPermissionAccessDetails : IPermissionAccessDetails<BillingPermission, EBilling>
{
public List<PermissionAccessDetails<BillingPermission, EBilling>> AccessDetails => Config();
}
这里是我用找到的所有代码的实现(几乎是逐字)从上面引用的答案。
public static List<Type> GetImplementations(Type desiredType)
{
return Assembly.GetExecutingAssembly().GetTypes()
.Where(type => DoesTypeSupportInterface(type, desiredType)).ToList();
}
static bool DoesTypeSupportInterface(Type type, Type inter)
{
if (inter.IsAssignableFrom(type))
return true;
if (type.GetInterfaces().Any(i => i.IsGenericType && i.GetGenericTypeDefinition() == inter))
return true;
return false;
}
var allPermissionAccessTypeDetails = HelperMethods.GetImplementations(typeof(IPermissionAccessDetails<,>));
我的问题是allPermissionAccessTypeDetails应该只有集合中的1项 - 但它也包括IPermissionAccessDetails类型。我如何排除?