/// <summary>
        /// Configure constructor parameter
        /// </summary>
        /// <typeparam name="TParam"></typeparam>
        /// <param name="paramFunc"></param>
        /// <returns></returns>
        public IFluentWithCtorConfiguration<TParam> WithCtorParam<TParam>(Func<TParam> paramFunc = null)
        {
            var constructorInfo = new ConstructorParameterInfo(paramFunc) { ParameterType = typeof(TParam) };

            _exportConfiguration.ConstructorParameter(constructorInfo);

            return new FluentWithCtorConfiguration<TParam>(this, constructorInfo);
        }
        /// <summary>
        /// Configure constructor parameter
        /// </summary>
        /// <param name="parameterType">parameter type</param>
        /// <returns></returns>
        public IFluentWithCtorConfiguration WithCtorParam(Type parameterType = null)
        {
            var constructorInfo = new ConstructorParameterInfo(null)
            {
                ParameterType = parameterType
            };

            _exportConfiguration.ConstructorParameter(constructorInfo);

            return(new FluentWithCtorConfiguration(this, constructorInfo));
        }
        /// <summary>
        /// Add a specific value for a particuar parameter in the constructor
        /// </summary>
        /// <typeparam name="TParam">type of parameter</typeparam>
        /// <typeparam name="TArg1"></typeparam>
        /// <param name="paramValue">Func(IInjectionScope, IInjectionContext, T) value for the parameter</param>
        /// <returns>configuration object</returns>
        public IFluentDecoratorWithCtorConfiguration <TParam> WithCtorParam <TArg1, TParam>(Func <TArg1, TParam> paramValue)
        {
            if (paramValue == null)
            {
                throw new ArgumentNullException(nameof(paramValue));
            }

            var parameterInfo = new ConstructorParameterInfo(paramValue)
            {
                ParameterType = typeof(TParam)
            };

            _strategy.ConstructorParameter(parameterInfo);

            return(new FluentDecoratorWithCtorConfiguration <TParam>(this, parameterInfo));
        }
Exemplo n.º 4
0
 /// <summary>
 /// Default constructor
 /// </summary>
 /// <param name="strategy"></param>
 /// <param name="constructorParameterInfo"></param>
 public FluentWithCtorConfiguration(IFluentExportStrategyConfiguration strategy, ConstructorParameterInfo constructorParameterInfo) : base(strategy)
 {
     _constructorParameterInfo = constructorParameterInfo;
 }
 /// <summary>
 /// Default constructor
 /// </summary>
 /// <param name="configuration"></param>
 /// <param name="constructorParameterInfo"></param>
 public FluentDecoratorWithCtorConfiguration(IFluentDecoratorStrategyConfiguration configuration, ConstructorParameterInfo constructorParameterInfo) : base(configuration)
 {
     _constructorParameterInfo = constructorParameterInfo;
 }
 /// <summary>
 /// Add constructor parameter to configuration
 /// </summary>
 /// <param name="info"></param>
 public void ConstructorParameter(ConstructorParameterInfo info)
 {
     ConstructorParametersList = ConstructorParametersList.Add(info);
 }
 /// <summary>
 /// Default constructor
 /// </summary>
 /// <param name="strategy"></param>
 /// <param name="parameterInfo"></param>
 public FluentWithCtorCollectionConfiguration(IFluentExportStrategyConfiguration <T> strategy, ConstructorParameterInfo parameterInfo) : base(strategy)
 {
     _parameterInfo = parameterInfo;
 }