我正在将 protobuf-net lib 与 protobuf-net memcache 提供程序一起使用,并且我正在尝试使用 memcache 附加功能:
var data = new ArraySegment<byte>(Encoding.UTF8.GetBytes("appendedString"));
var result = _memcache.ExecuteStore(StoreMode.Add, key, data);
它抛出异常:
运行时遇到致命错误。错误地址位于线程 0xd58 上的 0x63765a43。错误代码为 0xc0000005。此错误可能是 CLR 中的错误或用户代码的不安全或不可验证部分中的错误。此错误的常见来源包括 COM 互操作或 PInvoke 的用户封送错误,这可能会损坏堆栈。
我已经进行了一些调试并找出引发异常的位置:
/Meta/RuntimeTypeModel.cs: 692: ((MetaType)types[key]).Serializer.Write(value, dest);
这value
是我想设置为值的 ArraySegment,它dest
是 ProtoBuf.ProtoWriter。
有什么办法可以解决这个错误,或者,也许,我做错了什么。也许我只需要存储不是 ArraySegment,而只是字符串并将字符串附加到它?