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); }
public static IMRM CreateMRM(MemberInfo member, MappingType mappingType) { Type type = ClassGenerator.CreateMRMType(member); IMRM obj = (IMRM)type.GetConstructor(Type.EmptyTypes).Invoke(null); return(obj); }
public MRM2(MemberInfo member, MappingType mappingType) { this._mappingType = mappingType; this._valueSetter = MemberValueSetterContainer.GetMemberValueSetter(member); }