DragAndDrop core
This commit is contained in:
48
Lattice.Serialization.Docking.Json/JsonSerializerOptions.cs
Normal file
48
Lattice.Serialization.Docking.Json/JsonSerializerOptions.cs
Normal 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
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user