Mercurial > pub > bltoolkit
view Source/Mapping/EnumeratorMapper.cs @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
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 } }