Has IBsonSerializationOptions been removed from the latest C# driver of MongoDB? -
i have following source code in c# project, can built mongocsharpdriver version 1.8.3. after have upgraded mongodb c# driver 2.0.1, compile fails error indicating ibsonserializationoptions
, datetimeserializationoptions
classes (interfaces) cannot found, , checked namespaces in assembly, , seems types removed latest version of mongodb c# driver.
public void apply(bsonmembermap membermap) { ibsonserializationoptions options = null; switch (membermap.memberinfo.membertype) { case membertypes.property: propertyinfo propertyinfo = (propertyinfo)membermap.memberinfo; if (propertyinfo.propertytype == typeof(datetime) || propertyinfo.propertytype == typeof(datetime?)) options = new datetimeserializationoptions(datetimekind.local); break; case membertypes.field: fieldinfo fieldinfo = (fieldinfo)membermap.memberinfo; if (fieldinfo.fieldtype == typeof(datetime) || fieldinfo.fieldtype == typeof(datetime?)) options = new datetimeserializationoptions(datetimekind.local); break; default: break; } membermap.setserializationoptions(options); }
my question is, equivalent of these types in latest version of mongodb c# driver?
in 2.0 version of c# driver serialization options have been removed , have become properties of serializers themselves. instead of setting serialization options, configure suitably configured serializer , use it.
an implementation of convention 2.0 version of driver this:
public class localdatetimeconvention : imembermapconvention { public string name { { return "localdatetime"; } } public void apply(bsonmembermap membermap) { if (membermap.membertype == typeof(datetime)) { var datetimeserializer = new datetimeserializer(datetimekind.local); membermap.setserializer(datetimeserializer); } else if (membermap.membertype == typeof(datetime?)) { var datetimeserializer = new datetimeserializer(datetimekind.local); var nullabledatetimeserializer = new nullableserializer<datetime>(datetimeserializer); membermap.setserializer(nullabledatetimeserializer); } } }
Comments
Post a Comment