mirror of
https://github.com/sampletext32/ParkanPlayground.git
synced 2025-05-18 19:31:17 +03:00
34 lines
1.0 KiB
C#
34 lines
1.0 KiB
C#
using System.Text.Json;
|
|
using System.Text.Json.Serialization;
|
|
using CsvHelper;
|
|
using CsvHelper.Configuration;
|
|
using CsvHelper.TypeConversion;
|
|
using X86Disassembler.X86;
|
|
|
|
namespace X86DisassemblerTests;
|
|
|
|
// ReSharper disable once ClassNeverInstantiated.Global
|
|
public sealed class CsvJsonConverter<T> : DefaultTypeConverter
|
|
{
|
|
// Configure JSON options with case-insensitive enum handling
|
|
private static readonly JsonSerializerOptions _options = new JsonSerializerOptions
|
|
{
|
|
PropertyNameCaseInsensitive = true,
|
|
Converters = { new JsonStringEnumConverter(JsonNamingPolicy.CamelCase) }
|
|
};
|
|
|
|
public override object? ConvertFromString(string? text, IReaderRow row, MemberMapData memberMapData)
|
|
{
|
|
if (text is null)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
return JsonSerializer.Deserialize<T>(text, _options);
|
|
}
|
|
|
|
public override string? ConvertToString(object? value, IWriterRow row, MemberMapData memberMapData)
|
|
{
|
|
return JsonSerializer.Serialize(value, _options);
|
|
}
|
|
} |