DragAndDrop core

This commit is contained in:
FrigaT
2026-01-18 16:33:35 +03:00
parent 9ea82af329
commit 79bdd8bc62
229 changed files with 21214 additions and 2494 deletions

View File

@@ -0,0 +1,48 @@
using System.Text.Json;
namespace Lattice.Serialization.Docking;
/// <summary>
/// Предоставляет предварительно настроенные опции сериализации JSON для различных сценариев.
/// </summary>
public static class JsonSerializerOptionsPresets
{
/// <summary>
/// Получает опции для красивого форматирования с отступами (для конфигурационных файлов).
/// </summary>
public static JsonSerializerOptions PrettyPrint => new()
{
WriteIndented = true,
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
Converters = { new System.Text.Json.Serialization.JsonStringEnumConverter() },
DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull,
Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping
};
/// <summary>
/// Получает опции для компактного форматирования (для сетевой передачи).
/// </summary>
public static JsonSerializerOptions Compact => new()
{
WriteIndented = false,
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
Converters = { new System.Text.Json.Serialization.JsonStringEnumConverter() },
DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingDefault,
Encoder = System.Text.Encodings.Web.JavaScriptEncoder.UnsafeRelaxedJsonEscaping
};
/// <summary>
/// Получает опции для строгого форматирования (для валидации схемы).
/// </summary>
public static JsonSerializerOptions Strict => new()
{
WriteIndented = true,
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
Converters = { new System.Text.Json.Serialization.JsonStringEnumConverter() },
DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.Never,
IgnoreReadOnlyProperties = false,
IgnoreReadOnlyFields = true,
IncludeFields = false,
Encoder = System.Text.Encodings.Web.JavaScriptEncoder.Default
};
}