Advertisement
Guest User

Untitled

a guest
May 28th, 2015
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.20 KB | None | 0 0
  1. public static IEnumerable<T> Deserialize<T>(string address)
  2.         {
  3.             var config = new AngleSharp.Configuration().WithDefaultLoader();
  4.             var document = BrowsingContext.New(config).OpenAsync(Url.Create(address)).Result;
  5.  
  6.             var fields = (typeof(T)).GetFields();
  7.             var attrib = ((Selector)(System.Attribute.GetCustomAttributes(typeof(T)).First())).DataType;
  8.             var attribs = fields.Select(w =>
  9.                 {
  10.                     return ((Selector)(System.Attribute.GetCustomAttributes(typeof(T).GetField(w.Name)).First())).DataType;
  11.                 }).ToArray();
  12.  
  13.             List<T> cells = new List<T>();
  14.             foreach (var cell in document.QuerySelectorAll(attrib))
  15.             {
  16.                 T a = (T)Activator.CreateInstance(typeof(T));
  17.                 for (int i = 0; i < fields.Length; i++)
  18.                 {
  19.                     var value = cell.QuerySelectorAll(attribs[i]);
  20.                     typeof(T).GetField(fields[i].Name, BindingFlags.Public | BindingFlags.Instance).SetValue(a, value.Count()!=0? value.First().TextContent:"None");
  21.                 }
  22.                 cells.Add(a);
  23.             }
  24.             return cells;
  25.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement