公式の 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 引数を UuidStandard ではなく UuidLegacy にする必要があります。
標準表現を使用して Guid 値をシリアル化するにはどうすればよいですか?