public DeserializerFactory()
 {
     _valueTypeDeser = new ValueTypeDeserializer();
     _defaultDeser   = new EntityDeserializer();
     _dynamicDeser   = new DynamicDeserializer();
     _multipleDeser  = new MultipleResultDeserializer(this);
 }
Beispiel #2
0
        public SmartSqlMapper(SmartSqlOptions options)
        {
            SmartSqlOptions = options;
            SmartSqlOptions.Setup();
            _logger = LoggerFactory.CreateLogger <SmartSqlMapper>();
            _dataReaderDeserializer = DeserializerFactory.Create();
            NestedObjectConvertFactory convertFactory = new NestedObjectConvertFactory();

            _nestedObjectConverter = new NestedObjectConverter(convertFactory);
        }
 public IDataReaderDeserializer Create()
 {
     if (_dataReaderDeserializer == null)
     {
         lock (this)
         {
             if (_dataReaderDeserializer == null)
             {
                 _dataReaderDeserializer = new EmitDataReaderDeserializer();
             }
         }
     }
     return(_dataReaderDeserializer);
 }
Beispiel #4
0
 public IDataReaderDeserializer Create()
 {
     if (_dataReaderDeserializer == null)
     {
         lock (syncRoot)
         {
             if (_dataReaderDeserializer == null)
             {
                 _dataReaderDeserializer = new DapperDataReaderDeserializer();
             }
         }
     }
     return(_dataReaderDeserializer);
 }
Beispiel #5
0
 public SmartSqlBuilder AddDeserializer(IDataReaderDeserializer deserializer)
 {
     DataReaderDeserializers.Add(deserializer);
     return(this);
 }
Beispiel #6
0
 public static object Deserialize(Type resultType, IDataReaderDeserializer deserializer, ExecutionContext executionContext)
 {
     return(GetImpl(resultType)(deserializer, executionContext));
 }
Beispiel #7
0
 public void Add(IDataReaderDeserializer deserializer)
 {
     _deserCache.Add(deserializer);
 }
Beispiel #8
0
        public async Task <IMultipleResult> InitDataAsync(RequestContext requestContext, IDataReaderWrapper dataReaderWrapper, IDataReaderDeserializer dataReaderDeserializer)
        {
            foreach (var resultMapKV in _resultDataMap)
            {
                var resultMap = resultMapKV.Value;

                switch (resultMap.Type)
                {
                case ResultMap.ResultTypeType.Single:
                {
                    resultMap.Result = await dataReaderDeserializer.ToSingleAsync(requestContext, dataReaderWrapper, resultMap.ResultType, false);

                    break;
                }

                case ResultMap.ResultTypeType.Enumerable:
                {
                    resultMap.Result = await dataReaderDeserializer.ToEnumerableAsync(requestContext, dataReaderWrapper, resultMap.ResultType, false);

                    break;
                }
                }
                await dataReaderWrapper.NextResultAsync();
            }
            return(this);
        }
Beispiel #9
0
 public DeserializerFactory()
 {
     _Default_Deserializer = new EntityDeserializer();
 }
        public T ToNested <T>(RequestContext context, IDataReaderWrapper dataReaderWrapper, IDataReaderDeserializer dataReaderDeserializer)
        {
            var convert = _nestedObjectConvertFactory.CreateNestedObjectConvert(context, typeof(T));

            return((T)convert(context, dataReaderWrapper, dataReaderDeserializer));
        }