MappingFieldActivator.cs 838 B

12345678910111213141516171819202122232425262728293031
  1. using Ant.Exceptions;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.Linq;
  6. using System.Text;
  7. namespace Ant.Mapper
  8. {
  9. public class MappingFieldActivator : IObjectActivator
  10. {
  11. Func<IDataReader, int, object> _fn = null;
  12. int _readerOrdinal;
  13. public MappingFieldActivator(Func<IDataReader, int, object> fn, int readerOrdinal)
  14. {
  15. this._fn = fn;
  16. this._readerOrdinal = readerOrdinal;
  17. }
  18. public object CreateInstance(IDataReader reader)
  19. {
  20. try
  21. {
  22. return _fn(reader, _readerOrdinal);
  23. }
  24. catch (Exception ex)
  25. {
  26. throw new AntORMException(ObjectActivator.AppendErrorMsg(reader, this._readerOrdinal, ex), ex);
  27. }
  28. }
  29. }
  30. }