示例#1
0
        public void Save(ByteString id, byte[] bytes)
        {
            if (id.IsNull())
            {
                throw new ArgumentNullException(nameof(id));
            }

            if (id.Length != 32)
            {
                throw new ArgumentException(nameof(id));
            }

            if (bytes.IsNull())
            {
                throw new ArgumentException(nameof(bytes));
            }

            var fileName = Path.Combine(
                directory.FullName,
                HexConvert.FromBytes(id.ToByteArray()));
            var fileInfo = new FileInfo(fileName);

            // We assume the hash never collides.
            if (fileInfo.Exists)
            {
                return;
            }

            using (var stream = fileInfo.OpenWrite())
                stream.Write(bytes, 0, bytes.Length);
        }
示例#2
0
 public override string ToString() => HexConvert.FromBytes(bytes);
示例#3
0
 public override void WriteJson(
     JsonWriter writer, object value, JsonSerializer serializer)
 {
     writer.WriteValue(
         HexConvert.FromBytes(((ByteString)value).bytes));
 }