/
githubmirror
/
aspnetcore
Обзор
Документация
Войти
/
githubmirror
/
aspnetcore
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Components/test/testassets/TestContentPackage/CustomIntSerializer.cs
36 строк
1 KB
Copilot
[Blazor] Add IPersistentComponentStateSerializer<T> interface for custom serialization extensibility (#62559)
07 июл 2025, 19:01
Не верифицирован
07 июл 2025, 19:01
8883b98
Код
Авторство
О чём код?
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Buffers; using System.Text; using Microsoft.AspNetCore.Components; namespace TestContentPackage; /// <summary> /// A custom serializer for int values that uses a custom format to test serialization extensibility. /// This serializer prefixes integer values with "CUSTOM:" to clearly distinguish them from JSON serialization. /// </summary> public class CustomIntSerializer : PersistentComponentStateSerializer<int> { public override void Persist(int value, IBufferWriter<byte> writer) { var customFormat = $"CUSTOM:{value}"; var bytes = Encoding.UTF8.GetBytes(customFormat); writer.Write(bytes); } public override int Restore(ReadOnlySequence<byte> data) { var bytes = data.ToArray(); var text = Encoding.UTF8.GetString(bytes); if (text.StartsWith("CUSTOM:", StringComparison.Ordinal) && int.TryParse(text.Substring(7), out var value)) { return value; } // Fallback to direct parsing if format is unexpected return int.TryParse(text, out var fallbackValue) ? fallbackValue : 0; } }