Guest User

Untitled

a guest
Jul 22nd, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. // Мои интерфейс
  2. public interface IModel
  3. {
  4. Dictionary<string, string> toArray(MySqlDataReader reader);
  5.  
  6. IModel New(Dictionary<string, string> data);
  7. }
  8.  
  9. // Сюда я хочу передать интерфейс и класс
  10. // Класс заранее не известен, известно лишь какой интерфейс он использует
  11. // Интерфейс мне нужен для вызова методов этого класса, который не определен
  12. public List<T> Select<T>(IModel model, string query)
  13. {
  14. List<T> response = null;
  15.  
  16. if (this.OpenConnection() == true)
  17. {
  18. MySqlCommand cmd = new MySqlCommand(query, this.connection);
  19.  
  20. MySqlDataReader reader = cmd.ExecuteReader();
  21.  
  22. List<T> results = null;
  23.  
  24. if (reader.HasRows)
  25. {
  26. results = new List<T>();
  27. }
  28.  
  29. while (reader.HasRows)
  30. {
  31. Dictionary<string, string> data = null;
  32.  
  33. while (reader.Read())
  34. {
  35. data = model.toArray(reader);
  36. results.Add(model.New(data));
  37. }
  38.  
  39. reader.NextResult();
  40. }
  41.  
  42. return response;
  43. }
  44. else
  45. {
  46. return response;
  47. }
  48. }
  49.  
  50. // Тут я пытаюсь передать интерфейс и параметры
  51. public List<Ticker> All()
  52. {
  53. string query = "SELECT * FROM tickers";
  54.  
  55. List<Ticker> tickers = App.MySQL.Select<Ticker>(Ticker, query);
  56.  
  57. return tickers;
  58. }
Add Comment
Please, Sign In to add comment