Exemple #1
0
        public static MRMTuple CreateMRMTuple(MemberInfo member, MappingType mappingType)
        {
            MRMTuple mrmTuple = new MRMTuple();

            mrmTuple.StrongMRM = new Lazy <IMRM>(() =>
            {
                return(new MRM(member));
                //Type type = ClassGenerator.CreateMRMType(member);
                //IMRM strongMrm = (IMRM)type.GetDefaultConstructor().Invoke(null);
                //return strongMrm;
            }, LazyThreadSafetyMode.ExecutionAndPublication);

            if (member.GetMemberType().GetUnderlyingType().IsEnum /* 枚举比较特殊 */)
            {
                mrmTuple.SafeMRM = mrmTuple.StrongMRM;
            }
            else
            {
                mrmTuple.SafeMRM = new Lazy <IMRM>(() =>
                {
                    return(new MRM2(member, mappingType));
                }, LazyThreadSafetyMode.ExecutionAndPublication);
            }

            return(mrmTuple);
        }
Exemple #2
0
        public static IMRM CreateMRM(MemberInfo member, MappingType mappingType)
        {
            Type type = ClassGenerator.CreateMRMType(member);
            IMRM obj  = (IMRM)type.GetConstructor(Type.EmptyTypes).Invoke(null);

            return(obj);
        }
Exemple #3
0
 public MRM2(MemberInfo member, MappingType mappingType)
 {
     this._mappingType = mappingType;
     this._valueSetter = MemberValueSetterContainer.GetMemberValueSetter(member);
 }