public DataExchangeFactory(IBatisNet.DataMapper.TypeHandlers.TypeHandlerFactory typeHandlerFactory, IObjectFactory objectFactory, IBatisNet.Common.Utilities.Objects.Members.AccessorFactory accessorFactory) { this._objectFactory = objectFactory; this._typeHandlerFactory = typeHandlerFactory; this._accessorFactory = accessorFactory; this._primitiveDataExchange = new PrimitiveDataExchange(this); this._complexDataExchange = new ComplexDataExchange(this); this._listDataExchange = new ListDataExchange(this); this._dictionaryDataExchange = new DictionaryDataExchange(this); }
/// <summary> /// Initializes a new instance of the <see cref="DataExchangeFactory"/> class. /// </summary> /// <param name="typeHandlerFactory">The type handler factory.</param> /// <param name="objectFactory">The object factory.</param> /// <param name="accessorFactory">The accessor factory.</param> public DataExchangeFactory(TypeHandlerFactory typeHandlerFactory, IObjectFactory objectFactory, AccessorFactory accessorFactory) { _objectFactory = objectFactory; _typeHandlerFactory = typeHandlerFactory; _accessorFactory = accessorFactory; _primitiveDataExchange = new PrimitiveDataExchange(this); _complexDataExchange = new ComplexDataExchange(this); _listDataExchange = new ListDataExchange(this); _dictionaryDataExchange = new DictionaryDataExchange(this); }
/// <summary> /// Constructor to create via a factory /// </summary> /// <param name="factory">the factory to associate this with</param> public UnknownTypeHandler(TypeHandlerFactory factory) { _factory = factory; }
/// <summary> /// Resolve TypeHandler /// </summary> /// <param name="parameterClassType"></param> /// <param name="propertyName"></param> /// <param name="propertyType"></param> /// <param name="dbType"></param> /// <param name="typeHandlerFactory"></param> /// <returns></returns> private ITypeHandler ResolveTypeHandler(TypeHandlerFactory typeHandlerFactory, Type parameterClassType, string propertyName, string propertyType, string dbType) { ITypeHandler handler = null; if (parameterClassType == null) { handler = typeHandlerFactory.GetUnkownTypeHandler(); } else if (typeof(IDictionary).IsAssignableFrom(parameterClassType)) { if (propertyType == null || propertyType.Length==0) { handler = typeHandlerFactory.GetUnkownTypeHandler(); } else { try { Type typeClass = TypeUtils.ResolveType(propertyType); handler = typeHandlerFactory.GetTypeHandler(typeClass, dbType); } catch (Exception e) { throw new ConfigurationException("Error. Could not set TypeHandler. Cause: " + e.Message, e); } } } else if (typeHandlerFactory.GetTypeHandler(parameterClassType, dbType) != null) { handler = typeHandlerFactory.GetTypeHandler(parameterClassType, dbType); } else { Type typeClass = ObjectProbe.GetMemberTypeForGetter(parameterClassType, propertyName); handler = typeHandlerFactory.GetTypeHandler(typeClass, dbType); } return handler; }
/// <summary> /// Constructor to create via a factory /// </summary> /// <param name="factory">the factory to associate this with</param> public UnknownTypeHandler(TypeHandlerFactory factory) { _factory = factory; }
/// <summary> /// Initialize a the result property /// for AutoMapper /// </summary> /// <param name="setAccessor">An <see cref="ISetAccessor"/>.</param> /// <param name="typeHandlerFactory"></param> internal void Initialize(TypeHandlerFactory typeHandlerFactory, ISetAccessor setAccessor ) { _setAccessor = setAccessor; _typeHandler = typeHandlerFactory.GetTypeHandler(setAccessor.MemberType); }