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>()); }
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); } }