我正在使用官方 MongoDB 驱动程序 (C#) 实现自定义 IBsonSerializer。我处于必须序列化和反序列化 Guid 的情况。
如果我按如下方式实现 Serialize 方法,它可以工作:
public void Serialize(BsonWriter bsonWriter, Type nominalType, object value, IBsonSerializationOptions options)
{
BsonBinaryData data = new BsonBinaryData(value, GuidRepresentation.CSharpLegacy);
bsonWriter.WriteBinaryData(data);
}
但是我不希望 Guid 表示为 CSharpLegacy,我想使用标准表示。但是,如果我更改该代码中的 Guid 表示,我会收到以下错误:
MongoDB.Bson.BsonSerializationException:编写器的 GuidRepresentation 是 CSharpLegacy,它要求 subType 参数是 UuidLegacy,而不是 UuidStandard。
如何使用标准表示来序列化 Guid 值?