コード例 #1
0
        /// <summary>
        /// Add your own strategy provider, usually used by 3rd party libraries to provide their own custom export types
        /// </summary>
        /// <param name="strategyProvider">strategy provider</param>
        public void AddExportStrategyProvider(IExportStrategyProvider strategyProvider)
        {
            if (strategyProvider == null)
            {
                throw new ArgumentNullException(nameof(strategyProvider));
            }

            _exportStrategyProviders.AddRange(strategyProvider.ProvideExportStrategies());
        }
コード例 #2
0
        private void ProcessCurrentProvider()
        {
            if (_currentProvider != null)
            {
                _exportStrategyProviders.AddRange(_currentProvider.ProvideExportStrategies());

                _currentProvider = null;
            }
        }
コード例 #3
0
        /// <summary>
        /// Export a set of types
        /// </summary>
        /// <param name="types">types to export</param>
        /// <returns></returns>
        public IExportTypeSetConfiguration Export(IEnumerable <Type> types)
        {
            if (types == null)
            {
                throw new ArgumentNullException(nameof(types));
            }

            ProcessCurrentProvider();

            var configuration = _strategyCreator.GetTypeSetConfiguration(types);

            _currentProvider = (IExportStrategyProvider)configuration;

            return(configuration);
        }