protobuf-net memcache プロバイダーで protobuf-net lib を使用しており、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 で、ProtoBuf.ProtoWriterdest
です。
そのエラーを修正する方法はありますか、それとも何か間違ったことをしているのかもしれません。たぶん、単に ArraySegment ではなく、文字列を格納してそれに文字列を追加するだけでよいのでしょうか?