我在问题的第一部分找到了answer。然而,它也在我的收藏中返回界面。
我正在尝试获取接口的所有具体实现
case Constants.KEY_ENTER:
// this.onEnterKeyDown();
// Whatever makes the clients happy amirite?
this.onTabKeyDown();
break;
这是唯一具体的实现(到目前为止):
public interface IPermissionAccessDetails<T,TZ>
{
List<PermissionAccessDetails<T,TZ>> AccessDetails { get; }
}
以下是我用来从上面引用的答案中找到所有实现(几乎是逐字)的代码。
public class BillingPermissionAccessDetails : IPermissionAccessDetails<BillingPermission, EBilling>
{
public List<PermissionAccessDetails<BillingPermission, EBilling>> AccessDetails => Config();
}
我的问题是allPermissionAccessTypeDetails应该只有1个项目 - 但它也包括IPermissionAccessDetails类型。我该如何排除?
答案 0 :(得分:0)
找到它。修改了辅助方法:
static bool DoesTypeSupportInterface(Type type, Type inter)
{
if (type.IsInterface)
return false;
if (inter.IsAssignableFrom(type))
return true;
if (type.GetInterfaces().Any(i => i.IsGenericType && i.GetGenericTypeDefinition() == inter))
return true;
return false;
}