Beispiel #1
0
        public IJsonSerializator <T> GetSerializator <T>()
        {
            var wrapper = JsonSerializatorCache <T> .GetJsonSerializator(this);

            if (wrapper != null)
            {
                return(wrapper.JsonSerializator);
            }
            wrapper = BuildJsonSerializator <T>();
            if (wrapper != null)
            {
                return(wrapper.JsonSerializator);
            }
            return(ExceptionHelper.ThrowMapperNotRegisteredException <T>());
        }
Beispiel #2
0
        private MapperWrapper <T> BuildJsonSerializator <T>()
        {
            lock (_lock)
            {
                var existingWrapper = JsonSerializatorCache <T> .GetJsonSerializator(this);

                if (existingWrapper != null)
                {
                    return(existingWrapper);
                }
                MapperWrapper <T> createdWrapper = BuildMapperWrapperSync <T>();
                JsonSerializatorCache <T> .Register(createdWrapper);

                _mapperWrappers.Add(createdWrapper);
                return(createdWrapper);
            }
        }