Mercurial > pub > bltoolkit
view Source/Mapping/EnumeratorMapper.cs @ 3:1ef98bd70424
!bug 100 +3h
Исправление проблемы BLToolkit + mono 3.4
author | cin |
---|---|
date | Fri, 22 Aug 2014 17:34:46 +0400 |
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 } }