예제 #1
0
    public override void Write(Utf8JsonWriter writer, TMessage value, JsonSerializerOptions options)
    {
        int  nanos;
        long seconds;

        if (value is Timestamp timestamp)
        {
            nanos   = timestamp.Nanos;
            seconds = timestamp.Seconds;
        }
        else
        {
            nanos   = (int)value.Descriptor.Fields[Timestamp.NanosFieldNumber].Accessor.GetValue(value);
            seconds = (long)value.Descriptor.Fields[Timestamp.SecondsFieldNumber].Accessor.GetValue(value);
        }

        var text = Legacy.GetTimestampText(nanos, seconds);

        writer.WriteStringValue(text);
    }