public ParameterArgumentDef( ParameterInfo parameterInfo, CommandNodeType commandNodeType, AppConfig appConfig, object?[] parameterValues) { if (parameterValues == null) { throw new ArgumentNullException(nameof(parameterValues)); } _parameterInfo = parameterInfo ?? throw new ArgumentNullException(nameof(parameterInfo)); CommandNodeType = commandNodeType; Name = parameterInfo.BuildName(commandNodeType, appConfig); IsOptional = _parameterInfo.IsOptional || _parameterInfo.IsNullableParameter(); BooleanMode = this.GetBooleanMode(appConfig.AppSettings.Arguments.BooleanMode); Split = this.GetSplitChar(); ValueProxy = new ValueProxy( () => parameterValues[parameterInfo.Position], value => parameterValues[parameterInfo.Position] = value ); Arity = ArgumentArity.Default(this); }
public ParameterArgumentDef( ParameterInfo parameterInfo, CommandNodeType commandNodeType, AppConfig appConfig, object[] parameterValues) { if (parameterValues == null) { throw new ArgumentNullException(nameof(parameterValues)); } _parameterInfo = parameterInfo ?? throw new ArgumentNullException(nameof(parameterInfo)); CommandNodeType = commandNodeType; Name = parameterInfo.BuildName(commandNodeType, appConfig); ValueProxy = new ValueProxy( () => parameterValues[parameterInfo.Position], value => parameterValues[parameterInfo.Position] = value ); }