/// <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)); }
/// <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; }