CoreFieldMap.cs 946 B

12345678910111213141516171819202122232425262728293031323334
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq.Expressions;
  4. namespace InABox.Core
  5. {
  6. public class CoreFieldMapPair<T1, T2>
  7. {
  8. public Expression<Func<T1, object>> From { get; private set; }
  9. public Expression<Func<T2, object>> To { get; private set; }
  10. public CoreFieldMapPair(Expression<Func<T1, object>> from, Expression<Func<T2, object>> to)
  11. {
  12. From = from;
  13. To = to;
  14. }
  15. }
  16. public class CoreFieldMap<T1, T2>
  17. {
  18. private List<CoreFieldMapPair<T1, T2>> _fields = new List<CoreFieldMapPair<T1, T2>>();
  19. public CoreFieldMapPair<T1, T2>[] Fields => _fields.ToArray();
  20. public CoreFieldMap<T1, T2> Add(Expression<Func<T1, object>> from, Expression<Func<T2, object>> to)
  21. {
  22. _fields.Add(new CoreFieldMapPair<T1, T2>(from, to));
  23. return this;
  24. }
  25. }
  26. }