【问题标题】:Check exception type without considering T C#检查异常类型而不考虑 T C#
【发布时间】:2021-09-10 07:15:16
【问题描述】:

我有错误类:

 public class FailureException<TRequest, TResponse> : PartialFailureException<TRequest, TResponse>
    {
        public FailureException(TRequest request, TResponse response, TRequest requestToRetry)
            : base(request, response, requestToRetry) { }
    }

然后我有不同的类来检测错误的类型:

 public static class ErrorDetector
    {
        public static bool IsFailure(Exception e) =>
            e.GetType() == typeof(FailureException<TRequest, TResponse>));
    }

是否可以在不添加FailureException&lt;TRequest, TResponse&gt;(仅使用FailureException)的情况下检查错误类型,这样我就不需要将 添加到一堆其他类?

【问题讨论】:

  • this 会回答您的问题吗?只需将List&lt;&gt; 替换为FailureException&lt;,&gt;

标签: c# asp.net-core exception .net-core


【解决方案1】:

我认为您可以使用这样的开放泛型检查类型:

e.GetType().IsGenericType && e.GetType().GetGenericTypeDefinition() == typeof(FailureException<,>)

这里我们不指定类型参数,而是检查类型是否是泛型类型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多