public void Deserializer(StreamReader reader) { if (reader == null) { return; } string?line; var regex = new Regex(@"^\[(\w+)\]$"); while (null != (line = reader.ReadLine())) { if (string.IsNullOrWhiteSpace(line)) { continue; } if (!regex.IsMatch(line)) { continue; } var tag = regex.Match(line).Groups[1].Value.ToUpper(); switch (tag) { case "OPTION": Option.Deserializer(reader); break; case "PROXY": ProxyProvider.Deserializer(reader); break; case "RULE": RuleProvider.Deserializer(reader); break; case "URL": UrlProvider.Deserializer(reader); break; default: break; } } }