src/DotNetCommon.Core/Serialize/CompatConverter.cs

(开头部分) 17KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using DotNetCommon.Extensions;
using System;
using System.Buffers.Text;
using System.Buffers;
using System.Collections.Concurrent;
using System.Runtime.CompilerServices;
using System.Text.Json;
using System.Text.Json.Serialization;

namespace DotNetCommon.Serialize
{
    #region DateOnly & TimeOnly
    /// <summary>
    /// 专为 .net6 提供
    /// </summary>
    internal sealed class JsonConverterDateOnly : System.Text.Json.Serialization.JsonConverter<DateOnly>
    {
        public string Format { get; set; }
        public JsonConverterDateOnly()
        {
            this.Format = "yyyy-MM-dd";
        }
        public JsonConverterDateOnly(string format)
        {
            if (format == null) throw new ArgumentNullException("format");
            Format = format;
        }
        public override DateOnly Read(ref System.Text.Json.Utf8JsonReader reader, Type typeToConvert, System.Text.Json.JsonSerializerOptions options)
        {
            return DateOnly.Parse(reader.GetString());
        }

        public override void Write(System.Text.Json.Utf8JsonWriter writer, DateOnly value, System.Text.Json.JsonSerializerOptions options)
        {
            writer.WriteStringValue(value.ToString(Format));
        }
    }

    /// <summary>
    /// 专为 .net6 提供
    /// </summary>
    internal sealed class JsonConverterTimeOnly : System.Text.Json.Serialization.JsonConverter<TimeOnly>
    {
        public string Format { get; set; }
        public JsonConverterTimeOnly()
        {
            this.Format = "HH:mm:ss.fffffff";
        }
        public JsonConverterTimeOnly(string format)
        {
            if (format == null) throw new ArgumentNullException("format");
            Format = format;
        }
        public override TimeOnly Read(ref System.Text.Json.Utf8JsonReader reader, Type typeToConvert, System.Text.Json.JsonSerializerOptions options)
        {
            return TimeOnly.Parse(reader.GetString());
        }

        public override void Write(System.Text.Json.Utf8JsonWriter writer, TimeOnly value, System.Text.Json.JsonSerializerOptions options)
        {
后面还有 399 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。