Mercurial > pub > bltoolkit
view Source/Mapping/MemberMapperAttribute.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; 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; } } } }