public override void DictDeserialize(IDictionary <string, object> dicts, Scenario scenario = Scenario.Database) { base.DictDeserialize(dicts, scenario); URL = dicts.Set("URL", URL); RootXPath = dicts.Set("RootXPath", RootXPath); IsMultiData = dicts.Set("IsMultiData", IsMultiData); URLFilter = dicts.Set("URLFilter", URLFilter); Crawler = dicts.Set("Crawler", Crawler); ContentFilter = dicts.Set("ContentFilter", ContentFilter); if (dicts.ContainsKey("HttpSet")) { var doc2 = dicts["HttpSet"]; var p = doc2 as IDictionary <string, object>; Http.UnsafeDictDeserialize(p); } if (dicts.ContainsKey("Login")) { var doc2 = dicts["Login"]; var p = doc2 as IDictionary <string, object>; var item = new HttpItem(); item.DictDeserialize(p); Documents.Add(item); } if (dicts.ContainsKey("Generator")) { var doc2 = dicts["Generator"]; var p = doc2 as IDictionary <string, object>; } var doc = dicts as FreeDocument; if (doc?.Children != null) { foreach (var child in doc.Children) { var item = new CrawlItem(); item.DictDeserialize(child); CrawlItems.Add(item); } } }