using Newtonsoft.Json;
namespace Core
{
public static class SerializeGate
{
///
/// SerializeGate was added to help ensure deployment objects are serializable
/// and remain viable after deserialization.
/// Tools can be built on top of the core interface that rely on deployment objects being serializable.
/// Insert the serialization gate after deployment but before wrapping to ensure any future changes
/// don't break this requirement.
///
public static T Gate(T anything)
{
var json = JsonConvert.SerializeObject(anything);
return JsonConvert.DeserializeObject(json)!;
}
}
}