public void PostProcess(BsonClassMap classMap)
{
var idMemberMap = classMap.IdMemberMap;
if (idMemberMap == null)
{
return;
}
var representationOptions = idMemberMap.SerializationOptions as RepresentationSerializationOptions;
if (idMemberMap.MemberType == typeof(string) && representationOptions != null && representationOptions.Representation == BsonType.ObjectId)
{
idMemberMap.SetIdGenerator(StringObjectIdGenerator.Instance);
}
else
{
var generator = _convention.GetIdGenerator(classMap.IdMemberMap.MemberInfo);
idMemberMap.SetIdGenerator(generator);
}
}
}