public void HelperJson() { var status = new OperatorStatus { Success = true, Code = 1, Message = "Message", InnerMessage = "InnerMessage", Exception = new System.Exception("Exception") }; var json1 = SmartSerializer.ToInnerString(status); var opt = SmartSerializer.FromInnerString <OperatorStatus>(json1); var json2 = SmartSerializer.ToInnerString(opt); opt = (OperatorStatus)SmartSerializer.FromInnerString(json2, typeof(OperatorStatus)); Assert.IsTrue(opt.Message == "Message", json1); Assert.IsTrue(opt.InnerMessage == null, json1); }
/// <summary> /// 调用检查 /// </summary> /// <param name="context"></param> public async Task <(bool success, IInlineMessage message)> CheckRequest(HttpContext context) { HttpContext = context; var request = context.Request; //ITokenResolver if (!TryGetHeader(request, "x-zmvc-ver", out var ver)) { Message = new HttpMessage { IsOutAccess = true, HttpContext = context, Uri = request.Path.Value, HttpMethod = request.Method.ToUpper(), ID = Guid.NewGuid().ToString("N").ToUpper() }; if (!CheckApiRoute()) { return(false, null); } CheckTrace(); await Prepare(); return(true, Message); } var content = await ReadContent(); FlowTracer.MonitorDebug(content); if (ver != "v2") { var message = SmartSerializer.FromInnerString <InlineMessage>(content); message.DataState = MessageDataState.ArgumentOffline; return(true, message); } Message = new HttpMessage { ID = GetHeader(context.Request, "x-zmvc-id"), HttpContext = context, Uri = request.Path.Value, HttpMethod = request.Method.ToUpper(), Argument = content, HttpContent = content, ExtensionDictionary = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase), DataState = MessageDataState.ArgumentOffline }; if (!CheckApiRoute()) { return(false, null); } if (TryGetHeader(context.Request, "x-zmvc-trace", out var trace)) { Message.TraceInfo = SmartSerializer.ToObject <TraceInfo>(trace); } if (TryGetHeader(context.Request, "x-zmvc-user", out var user)) { Message.User = SmartSerializer.ToObject <Dictionary <string, string> >(user); } if (TryGetHeader(context.Request, "x-zmvc-ctx", out var ctx)) { Message.Context = SmartSerializer.ToObject <Dictionary <string, string> >(ctx); } return(true, Message); }