public override void Map(BsonClassMap <Enumeration> cm)
 {
     cm.MapMember(x => x.Id);
     cm.MapMember(x => x.Name);
     cm.AddKnownType(typeof(BlockType));
     cm.AddKnownType(typeof(Behavior));
 }
 // public methods
 /// <summary>
 /// Applies a modification to the class map.
 /// </summary>
 /// <param name="classMap">The class map.</param>
 public void Apply(BsonClassMap classMap)
 {
     foreach (var type in _knownTypes)
     {
         classMap.AddKnownType(type);
     }
 }
Esempio n. 3
0
        public static void RegisterV3ClassMap()
        {
            var rootTypes = AppDomain.CurrentDomain
                            .GetAssemblies()
                            .SelectMany(assembly => assembly
                                        .GetTypes())
                            .Where(type =>
                                   type.GetCustomAttributes(typeof(AddBsonKnowTypesAttribute), false).Any() &&
                                   type.IsClass &&
                                   type.IsAbstract)
                            .ToList();

            foreach (var rootType in rootTypes)
            {
                var subTypes = AppDomain.CurrentDomain
                               .GetAssemblies()
                               .SelectMany(assembly => assembly.GetTypes())
                               .Where(type =>
                                      rootType.IsAssignableFrom(type) &&
                                      type.IsClass &&
                                      !type.IsAbstract)
                               .ToList();

                var bsonClassMap = new BsonClassMap(rootType);
                bsonClassMap.AutoMap();
                bsonClassMap.SetIsRootClass(true);
                subTypes.ForEach(type => bsonClassMap.AddKnownType(type));

                BsonClassMap.RegisterClassMap(bsonClassMap);
            }
        }
 // public methods
 /// <summary>
 /// Applies a modification to the class map.
 /// </summary>
 /// <param name="classMap">The class map.</param>
 public void Apply(BsonClassMap classMap)
 {
     foreach (var type in _knownTypes)
     {
         classMap.AddKnownType(type);
     }
 }
Esempio n. 5
0
 public static void Register(BsonClassMap <BaseCommand> cm)
 {
     cm.AutoMap();
     AppDomain.CurrentDomain.GetAssemblies().SelectMany(assem => assem.GetTypes()).Where(type => type.IsSubclassOf(typeof(BaseCommand))).ToList()
     .ForEach(type => cm.AddKnownType(type));
     cm.SetIgnoreExtraElements(true);
 }
Esempio n. 6
0
 public virtual void Apply([NotNull] BsonClassMap classMap)
 {
     if (classMap == null)
     {
         throw new ArgumentNullException(nameof(classMap));
     }
     classMap.AddKnownType(DerivedType);
 }
Esempio n. 7
0
        public static void Register(BsonClassMap <Condition> cm)
        {
            cm.AutoMap();
            cm.SetIsRootClass(true);
            cm.SetIgnoreExtraElements(true);
            var featureType = typeof(Condition);

            featureType.Assembly.GetTypes()
            .Where(type => featureType.IsAssignableFrom(type)).ToList()
            .ForEach(type => cm.AddKnownType(type));
        }
Esempio n. 8
0
 public override void Map(BsonClassMap <PersonName> cm)
 {
     cm.MapMember(x => x.Value);
     cm.AddKnownType(typeof(FirstName));
     cm.AddKnownType(typeof(LastName));
 }