using System; using System.Collections.Generic; using MongoDB.Bson.Serialization; using MongoDB.Bson.Serialization.Conventions; using TrueSync; using Unity.Mathematics; namespace ET { public static class MongoRegister { private static void RegisterStruct() where T : struct { BsonSerializer.RegisterSerializer(typeof (T), new StructBsonSerialize()); } public static void Register() { // 自动注册IgnoreExtraElements ConventionPack conventionPack = new() { new IgnoreExtraElementsConvention(true) }; ConventionRegistry.Register("IgnoreExtraElements", conventionPack, type => true); RegisterStruct(); RegisterStruct(); RegisterStruct(); RegisterStruct(); RegisterStruct(); RegisterStruct(); RegisterStruct(); RegisterStruct(); RegisterStruct(); RegisterStruct(); Dictionary types = CodeTypes.Instance.GetTypes(); foreach (Type type in types.Values) { if (!type.IsSubclassOf(typeof (Object))) { continue; } if (type.IsGenericType) { continue; } BsonClassMap.LookupClassMap(type); } } } }