src/Library/NetPro.StackExchange.Redis/StackExchange.Redis.Extensions.Core/Extensions/ValueLengthExtensions.cs
(完整代码) 1KBusing System;
using System.Collections.Generic;
namespace StackExchange.Redis.Extensions.Core.Extensions
{
internal static class ValueLengthExtensions
{
public static IEnumerable<KeyValuePair<string, byte[]>> OfValueInListSize<T>(this IEnumerable<Tuple<string, T>> items, ISerializer serializer, uint maxValueLength)
{
using var iterator = items.GetEnumerator();
while (iterator.MoveNext())
{
yield return new KeyValuePair<string, byte[]>(
iterator.Current.Item1,
iterator.Current.Item2.SerializeItem(serializer).CheckLength(maxValueLength, iterator.Current.Item1));
}
}
public static byte[] OfValueSize<T>(this T value, ISerializer serializer, uint maxValueLength, string key)
=> serializer.Serialize(value).CheckLength(maxValueLength, key);
private static byte[] SerializeItem<T>(this T item, ISerializer serializer)
=> serializer.Serialize(item);
private static byte[] CheckLength(this byte[] byteArray, uint maxValueLength, string paramName)
{
if (maxValueLength > default(uint) && byteArray.Length > maxValueLength)
throw new ArgumentException("value cannot be longer than the MaxValueLength", paramName);
return byteArray;
}
}
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。