private void ValidateArgumentResult(ArgumentResult argumentResult) { if (argumentResult.Argument is Argument argument) { var parseError = argumentResult.Parent?.UnrecognizedArgumentError(argument) ?? argumentResult.CustomError(argument); if (parseError != null) { _errors.Add(parseError); return; } } if (argumentResult.GetArgumentConversionResult() is FailedArgumentConversionResult failed) { _errors.Add( new ParseError( failed.ErrorMessage !, argumentResult)); } }
public static T GetValueOrDefault <T>(this ArgumentResult argumentResult) => argumentResult.GetArgumentConversionResult() .ConvertIfNeeded(argumentResult, typeof(T)) .GetValueOrDefault <T>();