TraceUtils
Utility class to Get/Set TraceData
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
namespace DynamoServices
{
public static class TraceUtils
{
internal const string __TEMP_REVIT_TRACE_ID = "{0459D869-0C72-447F-96D8-08A7FB92214B}-REVIT";
[ThreadStatic]
private static Dictionary<string, ISerializable> _localStorageSlot;
internal static Dictionary<string, ISerializable> LocalStorageSlot {
get {
return _localStorageSlot ?? (_localStorageSlot = new Dictionary<string, ISerializable>());
}
set {
_localStorageSlot = value;
}
}
internal static List<string> TEMP_GetTraceKeys()
{
return new List<string> {
"{0459D869-0C72-447F-96D8-08A7FB92214B}-REVIT"
};
}
internal static void ClearTLSKey(string key)
{
LocalStorageSlot.Remove(key);
}
internal static void ClearAllKnownTLSKeys()
{
LocalStorageSlot.Clear();
}
public static ISerializable GetTraceData(string key)
{
if (!LocalStorageSlot.TryGetValue(key, out ISerializable value))
return null;
return value;
}
public static void SetTraceData(string key, ISerializable value)
{
if (LocalStorageSlot.ContainsKey(key))
LocalStorageSlot[key] = value;
else
LocalStorageSlot.Add(key, value);
}
}
}