Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static IEnumerable<T> Deserialize<T>(string address)
- {
- var config = new AngleSharp.Configuration().WithDefaultLoader();
- var document = BrowsingContext.New(config).OpenAsync(Url.Create(address)).Result;
- var fields = (typeof(T)).GetFields();
- var attrib = ((Selector)(System.Attribute.GetCustomAttributes(typeof(T)).First())).DataType;
- var attribs = fields.Select(w =>
- {
- return ((Selector)(System.Attribute.GetCustomAttributes(typeof(T).GetField(w.Name)).First())).DataType;
- }).ToArray();
- List<T> cells = new List<T>();
- foreach (var cell in document.QuerySelectorAll(attrib))
- {
- T a = (T)Activator.CreateInstance(typeof(T));
- for (int i = 0; i < fields.Length; i++)
- {
- var value = cell.QuerySelectorAll(attribs[i]);
- typeof(T).GetField(fields[i].Name, BindingFlags.Public | BindingFlags.Instance).SetValue(a, value.Count()!=0? value.First().TextContent:"None");
- }
- cells.Add(a);
- }
- return cells;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement