public void Register(ITypeHandler typeHandler) { if (!_typeHandlerMap.TryGetValue(typeHandler.PropertyType, out var fieldTypeHandlerMap)) { fieldTypeHandlerMap = new Dictionary <Type, ITypeHandler>(); _typeHandlerMap.Add(typeHandler.PropertyType, fieldTypeHandlerMap); } if (fieldTypeHandlerMap.ContainsKey(typeHandler.FieldType)) { fieldTypeHandlerMap[typeHandler.FieldType] = typeHandler; } else { fieldTypeHandlerMap.Add(typeHandler.FieldType, typeHandler); } TypeHandlerCacheType.SetHandler(typeHandler); PropertyTypeHandlerCacheType.SetHandler(typeHandler); }