Mercurial > pub > bltoolkit
view Source/Mapping/MemberMapperAttribute.cs @ 1:8f65451dc28f
Исправлена проблема с фабрикой и выборкой нескольких объектов в linq выражении
author | cin |
---|---|
date | Fri, 28 Mar 2014 01:04:56 +0400 |
parents | f990fcb411a9 |
children |
line wrap: on
line source
using System; namespace BLToolkit.Mapping { [AttributeUsage( AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.Property | AttributeTargets.Field, AllowMultiple=true)] public class MemberMapperAttribute : MapImplicitAttribute { public MemberMapperAttribute(Type memberMapperType) : this(null, memberMapperType) { } public MemberMapperAttribute(Type memberType, Type memberMapperType) { if (memberMapperType == null) throw new ArgumentNullException("memberMapperType"); _memberType = memberType; _memberMapperType = memberMapperType; } private readonly Type _memberType; public Type MemberType { get { return _memberType; } } private readonly Type _memberMapperType; public Type MemberMapperType { get { return _memberMapperType; } } public virtual MemberMapper MemberMapper { get { var mm = Activator.CreateInstance(_memberMapperType) as MemberMapper; if (mm == null) throw new ArgumentException( string.Format("Type '{0}' is not MemberMapper.", _memberMapperType)); mm.IsExplicit = true; return mm; } } } }