检查异常类型而不考虑 T C#
Check exception type without considering T C#
我有错误 class:
public class FailureException<TRequest, TResponse> : PartialFailureException<TRequest, TResponse>
{
public FailureException(TRequest request, TResponse response, TRequest requestToRetry)
: base(request, response, requestToRetry) { }
}
然后我有不同的 class 来检测错误类型:
public static class ErrorDetector
{
public static bool IsFailure(Exception e) =>
e.GetType() == typeof(FailureException<TRequest, TResponse>));
}
是否可以在不添加 FailureException<TRequest, TResponse>
(仅使用 FailureException
)的情况下以某种方式检查错误类型,这样我就不需要将 添加到一堆其他 classes?
我认为您可以使用这样的开放泛型来检查类型:
e.GetType().IsGenericType && e.GetType().GetGenericTypeDefinition() == typeof(FailureException<,>)
这里我们不指定类型参数,而是检查类型是否为泛型。
我有错误 class:
public class FailureException<TRequest, TResponse> : PartialFailureException<TRequest, TResponse>
{
public FailureException(TRequest request, TResponse response, TRequest requestToRetry)
: base(request, response, requestToRetry) { }
}
然后我有不同的 class 来检测错误类型:
public static class ErrorDetector
{
public static bool IsFailure(Exception e) =>
e.GetType() == typeof(FailureException<TRequest, TResponse>));
}
是否可以在不添加 FailureException<TRequest, TResponse>
(仅使用 FailureException
)的情况下以某种方式检查错误类型,这样我就不需要将
我认为您可以使用这样的开放泛型来检查类型:
e.GetType().IsGenericType && e.GetType().GetGenericTypeDefinition() == typeof(FailureException<,>)
这里我们不指定类型参数,而是检查类型是否为泛型。