RestSharp 自定义 IDeserialize return 通用类型

RestSharp custom IDeserialize return generic type

我想通过实现 RestSharp.Portable.Deserializers.IDeserialize 接口来编写自定义解串器 class:

        public class EnrollmentDeserializer : IDeserializer
        {
            public T Deserialize<T> (IRestResponse response) 
            {
                if (response.IsSuccess)
                {
                    IList<Enrollment> enrollments = new List<Enrollments>();
                    // parsing JObjects and JTokens into list of enrollments
                    return (T)enrollments;
                }
                throw new Exception(response.StatusCode + ": can't get enrollments");
            }
        }

我的问题是关于泛型的 T。如何在不强制转换的情况下将 T 定义为 return IList<Enrollment>

我尝试了“where T : List<Enrollment>”或“where T : class”,但其中 none 个有效。

您试图错误地使用泛型。目的是为 "any"(或许多)类型重用同一段代码。

对于您的情况,您可以扩展默认实现。然后,如果类型是您想要的类型,请使用您的实现。如果没有,调用基本方法。

希望我帮到了你。