我想反映到一個程序集並獲得所有從泛型派生的類型。反射濾波器類型按通用基地
protected List<Assembly> _assemblies = new List<Assembly>();
public List<Type> FilterByType<T>()
{
return this._assemblies.SelectMany(x => x.GetTypes()).Where(type => typeof (T).IsAssignableFrom(type)).ToList();
}
然而,當我嘗試調用過濾方法我無法通過一個類型少通用
// This does not compile because it's an unbound generic
FilterByType<AbstractValidator<>>()
我怎樣可以過濾任何地方我的基礎是從一個普通的一個derrive?
添加一個接受Type作爲參數的非泛型重載,那麼你可以通過'typeof(AbstractValidator <>)' – Gusman
@Gusman我的邏輯的其餘部分仍然會工作?我不需要比較泛型類型定義? –
看看我的答案。 – Gusman