Commit 5e71b8cd authored by Savorboard's avatar Savorboard

add TryExtractTracingHeaders

parent af1b1ec6
......@@ -2,7 +2,9 @@
// Licensed under the MIT License. See License.txt in the project root for license information.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
using DotNetCore.CAP.Diagnostics;
using Newtonsoft.Json;
......@@ -94,7 +96,29 @@ namespace DotNetCore.CAP.Infrastructure
public static string AddTracingHeaderProperty(string json, TracingHeaders headers)
{
var jObject = ToJObject(headers);
return AddJsonProperty(json, "TracingHeaders", jObject);
return AddJsonProperty(json, nameof(TracingHeaders), jObject);
}
public static bool TryExtractTracingHeaders(string json, out TracingHeaders headers, out string removedHeadersJson)
{
var jObj = JObject.Parse(json);
var jToken = jObj[nameof(TracingHeaders)];
if (jToken != null)
{
headers = new TracingHeaders();
foreach (var item in jToken.ToObject<Dictionary<string,string>>())
{
headers.Add(item.Key, item.Value);
}
jObj.Remove(nameof(TracingHeaders));
removedHeadersJson = jObj.ToString();
return true;
}
headers = null;
removedHeadersJson = null;
return false;
}
public static bool IsInnerIP(string ipAddress)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment