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類型。我如何排除?