あなたが試すことができます
typeof(UniqueKeyQuery<,>).IsAssignableFrom(query.GetType().GetGenericDefitition())
うまくいかない場合は、これを使用できます(静的クラスにある必要がある静的拡張メソッド)
public static bool IsOrInheritsGenericDefinition(this Type ThisType, Type GenericDefinition, out Type DefinitionWithTypedParameters)
{
DefinitionWithTypedParameters = ThisType;
while (DefinitionWithTypedParameters != null)
{
if (DefinitionWithTypedParameters.IsGenericType)
{
if (DefinitionWithTypedParameters.GetGenericTypeDefinition() == GenericDefinition)
return true;
}
DefinitionWithTypedParameters = DefinitionWithTypedParameters.BaseType;
}
return false;
}
それを次のように呼び出します。
Type QueryType;
query.GetType().IsOrInheritsGenericDefinition(typeof(UniqueKeyQuery<,>), out QueryType);