添加对 Core 的直接引用

This commit is contained in:
OLDREDSTONE
2025-03-25 15:49:57 +08:00
parent 24907abedb
commit 06c19bf10a
296 changed files with 24961 additions and 2 deletions
@@ -0,0 +1,66 @@
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace RhythmBase.Converters
{
internal abstract class TimeConverter : JsonConverter<TimeSpan>
{
public TimeConverter()
{
_timeType = TimeType.MiliSecond;
}
public TimeConverter(TimeType type)
{
_timeType = type;
}
public override void WriteJson(JsonWriter writer, TimeSpan value, JsonSerializer serializer)
{
switch (_timeType)
{
case TimeType.Hour:
writer.WriteValue(value.TotalHours);
break;
case TimeType.Minute:
writer.WriteValue(value.TotalMinutes);
break;
case TimeType.Second:
writer.WriteValue(value.TotalSeconds);
break;
case TimeType.MiliSecond:
writer.WriteValue((int)value.TotalMilliseconds);
break;
case TimeType.Microsecond:
writer.WriteValue((int)value.TotalMicroseconds);
break;
default:
break;
}
}
public override TimeSpan ReadJson(JsonReader reader, Type objectType, TimeSpan existingValue, bool hasExistingValue, JsonSerializer serializer)
{
float value = JToken.ReadFrom(reader).ToObject<float>();
return _timeType switch
{
TimeType.Hour => TimeSpan.FromHours((double)value),
TimeType.Minute => TimeSpan.FromMinutes((double)value),
TimeType.Second => TimeSpan.FromSeconds((double)value),
TimeType.MiliSecond => TimeSpan.FromMilliseconds((int)value),
TimeType.Microsecond => TimeSpan.FromMicroseconds((int)value),
_ => throw new NotImplementedException()
};
}
private readonly TimeType _timeType;
public enum TimeType
{
Hour,
Minute,
Second,
MiliSecond,
Microsecond
}
}
}