/// <summary> /// Initializes a new instance of the <see cref="AdapterFactory{TSource,TTarget}"/> class. /// </summary> /// <param name="configuration">An adapter factory configuration.</param> /// <param name="adapterFactoryLocator">An adapter factory locator.</param> /// <param name="adapterFactoryFlags">Adapter factory flags.</param> /// <exception cref="ArgumentNullException">Thrown when <paramref name="configuration"/> is null.</exception> protected AdapterFactory(AdapterFactoryFlags adapterFactoryFlags, AdapterFactoryConfiguration <TSource, TTarget> configuration = null, IAdapterFactoryLocator adapterFactoryLocator = null) { configuration = configuration ?? new AdapterFactoryConfiguration <TSource, TTarget>(); _locator = adapterFactoryLocator == null ? new AdapterFactoryLocator() : new AdapterFactoryLocator(adapterFactoryLocator); configuration.ThrowIfNull("configuration"); _configuration = configuration; _adapterFactoryFlags = adapterFactoryFlags; _adapterFactory = new Lazy <IAdapterFactory <TSource, TTarget> >( () => { ConfigureMapping(); return(AdapterFactoryGenerator.Instance.Generate <TSource, TTarget>(_configuration.Mappings)); }); }
/// <summary> /// Initializes a new instance of the <see cref="RecursiveConventionBasedAdapterFactory{TSource,TTarget}"/> class. /// </summary> /// <param name="locator">An adapter factory locator.</param> /// <exception cref="ArgumentNullException">Thrown when <paramref name="locator"/> is null.</exception> protected RecursiveConventionBasedAdapterFactory(IAdapterFactoryLocator locator) { locator.ThrowIfNull("locator"); _locator = locator; }
/// <summary> /// Initializes a new instance of the <see cref="AdapterFactory{TSource,TTarget}"/> class with default options. /// </summary> /// <param name="configuration">An adapter factory configuration.</param> /// <param name="adapterFactoryLocator">An adapter factory locator.</param> /// <exception cref="ArgumentNullException">Thrown when <paramref name="configuration"/> is null.</exception> protected AdapterFactory(AdapterFactoryConfiguration <TSource, TTarget> configuration = null, IAdapterFactoryLocator adapterFactoryLocator = null) : this(AdapterFactoryFlags.ApplyDefaultMappingConventions | AdapterFactoryFlags.ApplyRecursiveMappingConvention, configuration, adapterFactoryLocator) { }
/// <summary> /// Initializes a new instance of the <see cref="AdapterFactoryLocator"/> class with default behaviors and the given adapter factory locator. /// </summary> /// <param name="adapterFactoryLocator">An adapter factory locator to use for instances not directly registered with this locator.</param> public AdapterFactoryLocator(IAdapterFactoryLocator adapterFactoryLocator) { _adapterFactoryLocator = adapterFactoryLocator; }