public override void Serialize(
BsonWriter bsonWriter,
Type nominalType,
object value,
IBsonSerializationOptions options)
{
if (value == null)
{
bsonWriter.WriteNull();
}
else
{
var cultureInfo = (CultureInfo)value;
if (cultureInfo.UseUserOverride)
{
// the default for UseUserOverride is true so we don't need to serialize it
bsonWriter.WriteString(cultureInfo.Name);
}
else
{
bsonWriter.WriteStartDocument();
bsonWriter.WriteString("Name", cultureInfo.Name);
bsonWriter.WriteBoolean("UseUserOverride", cultureInfo.UseUserOverride);
bsonWriter.WriteEndDocument();
}
}
}
}