public static ExporterConsoleParameters ExtractParametersFromArgs(string[] args) { var t = typeof(ExporterConsoleParameters); var instance = new ExporterConsoleParameters(); foreach (var s in args) { var trimmed = s.TrimStart('-'); var kv = trimmed.Split('='); if (kv.Length != 2) { Console.WriteLine("Unrecognized parameter: {0}", s); continue; } var key = kv[0].Trim(); var value = kv[1].Trim().Trim('"'); var prop = t.GetProperty(key); if (prop == null) { Console.WriteLine("Unrecognized parameter: {0}", key); continue; } if (prop.PropertyType == typeof(bool)) { bool parsedValue = Boolean.Parse(value); prop.SetValue(instance, parsedValue); continue; } if (prop.PropertyType == typeof(string)) { prop.SetValue(instance, value); continue; } if (prop.PropertyType == typeof(string[])) { var parsedValue = value.Split(';'); prop.SetValue(instance, parsedValue); continue; } Console.WriteLine("Cannot parse parameter for source property {0}", key); } try { instance.Validate(); } catch (Exception ex) { Console.WriteLine("Parameters validation error: {0}", ex.Message); PrintHelp(); return(null); } return(instance); }
public static ExporterConsoleParameters ExtractParametersFromArgs(string[] args) { var t = typeof(ExporterConsoleParameters); var instance = new ExporterConsoleParameters(); foreach (var s in args) { var trimmed = s.TrimStart('-'); var kv = trimmed.Split('='); if (kv.Length != 2) { Console.WriteLine("Unrecognized parameter: {0}", s); continue; } var key = kv[0].Trim(); var value = kv[1].Trim().Trim('"'); var prop = t.GetProperty(key); if (prop == null) { Console.WriteLine("Unrecognized parameter: {0}", key); continue; } if (prop.PropertyType == typeof(bool)) { bool parsedValue = Boolean.Parse(value); prop.SetValue(instance, parsedValue); continue; } if (prop.PropertyType == typeof(string)) { prop.SetValue(instance, value); continue; } if (prop.PropertyType == typeof(string[])) { var parsedValue = value.Split(';'); prop.SetValue(instance, parsedValue); continue; } Console.WriteLine("Cannot parse parameter for source property {0}", key); } try { instance.Validate(); } catch (Exception ex) { Console.WriteLine("Parameters validation error: {0}", ex.Message); PrintHelp(); return null; } return instance; }