Mercurial > pub > bltoolkit
view Source/Mapping/EnumeratorMapper.cs @ 9:1e85f66cf767 default tip
update bltoolkit
author | nickolay |
---|---|
date | Thu, 05 Apr 2018 20:53:26 +0300 |
parents | f990fcb411a9 |
children |
line wrap: on
line source
using System; using System.Collections; using BLToolkit.Reflection; namespace BLToolkit.Mapping { public class EnumeratorMapper : IMapDataSourceList { public EnumeratorMapper(IEnumerator enumerator) { _enumerator = enumerator; } private readonly IEnumerator _enumerator; private Type _objectType; #region IMapDataSourceList Members public virtual void InitMapping(InitContext initContext) { _enumerator.Reset(); } public virtual bool SetNextDataSource(InitContext initContext) { if (initContext == null) throw new ArgumentNullException("initContext"); if (_enumerator.MoveNext() == false) return false; object sourceObject = _enumerator.Current; if (_objectType != sourceObject.GetType()) { _objectType = sourceObject.GetType(); initContext.DataSource = initContext.MappingSchema.GetObjectMapper(_objectType); } initContext.SourceObject = sourceObject; return true; } public virtual void EndMapping(InitContext initContext) { } #endregion } }