public void TestMethod3() { var resultCode = XingePushClientResultCode.内部错误; var errMsg = nameof(TestMethod3); var testJsonString = "{\"ret_code\":0,\"err_msg\":\"\",\"result\":{\"push_id\":10000,\"sub_push_ids\":[234,235,236]}}"; var jObject = JObject.Parse(testJsonString); var jToken = jObject.GetValue(Constants.result, StringComparison.OrdinalIgnoreCase); var p0 = new XingePushClientResult { ResultCode = resultCode, ErrMsg = errMsg, }; p0.SetResult(jToken); var p1 = new XingePushClientResult <TResult> { ResultCode = resultCode, ErrMsg = errMsg, }; p1.SetResult(jToken); var s0 = p0.Serialize(); var s1 = p1.Serialize(); WriteLine(nameof(s0), s0); WriteLine(nameof(s1), s1); Assert.IsTrue(s0 == s1, "s0 == s1"); var d0 = s0.Deserialize <XingePushClientResult>(); var d1 = s1.Deserialize <XingePushClientResult <TResult> >(); var ns0 = d0.Serialize(); var ns1 = d1.Serialize(); WriteLine(nameof(ns0), s0); WriteLine(nameof(ns1), s1); Assert.IsTrue(ns0 == ns1, "ns0 == ns1"); Assert.IsTrue(ns0 == s0, "ns0 == s0"); }
/// <summary> /// <see cref="ErrorMessageInvalid"/> /// </summary> /// <param name="result"></param> /// <returns></returns> public static bool IsErrorMessageInvalid(this XingePushClientResult result) => Equals(result, ErrorMessageInvalid);
/// <summary> /// <see cref="ErrorMessageType"/> /// </summary> /// <param name="result"></param> /// <returns></returns> public static bool IsErrorMessageType(this XingePushClientResult result) => Equals(result, ErrorMessageType);
/// <summary> /// /// </summary> /// <param name="left"></param> /// <param name="right"></param> /// <returns></returns> internal static bool Equals(XingePushClientResult left, string right) => left != null && left.ResultCode == XingePushClientResultCode.参数错误 && !string.IsNullOrWhiteSpace(left.ErrMsg) && left.ErrMsg == right;