Represents a serializer for DateTimes.
Inheritance: MongoDB.Bson.Serialization.Serializers.BsonBaseSerializer
Example #1
0
    public static void RegisterMongo()
    {
      if (_reg) return;
      _reg = true;

      if (!BsonClassMap.IsClassMapRegistered(typeof(ConstructGenGen<DateTime, DateTime>)))
      {
        BsonClassMap.RegisterClassMap<ConstructGenGen<DateTime, DateTime>>(cm =>
        {
          var dateSerializer = new DateTimeSerializer(dateOnly: true);

          cm.AutoMap();
          cm.GetMemberMap(c => c.ColumnHeadings).SetElementName("headings");
          cm.GetMemberMap(c => c.ArrayLength).SetElementName("length");
          cm.GetMemberMap(c => c.Name).SetElementName("name");
          cm.GetMemberMap(c => c.Keys).SetElementName("keys")
            .SetSerializer(
              new EnumerableInterfaceImplementerSerializer<List<DateTime>>(dateSerializer));
          cm.GetMemberMap(c => c.Data)
            .SetElementName("data")
            .SetSerializer(new DictionaryInterfaceImplementerSerializer<Dictionary<DateTime, DateTime[]>>(DictionaryRepresentation.ArrayOfArrays,
              dateSerializer,
              new ArraySerializer<DateTime>(dateSerializer)));
        });
      }

      BsonClassMap.RegisterClassMap<TenorDates>(cm =>
      {
        cm.AutoMap();
        cm.MapIdProperty(c => c.ID).SetIdGenerator(ObjectIdGenerator.Instance);
        cm.GetMemberMap(c => c.HolidayCode).SetElementName("calendarCode");
        cm.GetMemberMap(c => c.SpotStart).SetElementName("spotStart");
      });
    }
        //методы
        public static void ApplyGlobalSerializationSettings()
        {
            //сериализаторы
            var dateSerializer = new DateTimeSerializer(DateTimeKind.Utc);
            BsonSerializer.RegisterSerializer(typeof(DateTime), dateSerializer);

            //проверка Id
            BsonSerializer.UseNullIdChecker = true;
            BsonSerializer.UseZeroIdChecker = true;
        }