private static T GetInstanceInternal(Action <Parser> parseAction, ReflectionParser <T> reflectionParser) { var parser = reflectionParser.CreateParser(); parseAction(parser); if (reflectionParser.ParseResult.Errors.Any()) { // For now, throw throw new ArgumentException(reflectionParser.ParseResult.Errors.ToString()); } return(reflectionParser.Result); }
public static T GetInstance <T>(this ReflectionParser <T> reflectionParser, string args) => ReflectionParser <T> .GetInstance(args, reflectionParser);
internal static T GetInstance(string[] args, ReflectionParser <T> reflectionParser) => GetInstanceInternal(p => p.Invoke(args), reflectionParser);