Mercurial > pub > bltoolkit
view Source/Mapping/EnumeratorMapper.cs @ 5:f7d63a092920
Исправлено условие Where в тех случаях, когда репозитарий не является генериком
author | cin |
---|---|
date | Tue, 10 Mar 2015 16:02:11 +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 } }