internal virtual IMemberMapping CreateFor(Type klassSrc, Type klassDst) { if (klassDst.GetTypeInfo().IsValueType || klassDst.GetConstructor(Type.EmptyTypes) != null) { return(MemberToMemberMapping.Create(klassSrc, klassDst, IsToMapProperties, IsToMapFields, AttributeType)); } else { return(MemberToConstructorMapping.Create(klassSrc, klassDst, IsToMapProperties, IsToMapFields, AttributeType)); } }
public static new MemberToConstructorMapping Create(Type klassSrc, Type klassDst, bool isToMapProperties = true, bool isToMapFields = false, Type attributeTypeToMap = null) { ConstructorInfo constructorInfo = FindTheBestConstructor(klassDst); if (constructorInfo == null || constructorInfo.GetParameters().Length <= 0) { throw new NotSupportedException("MemberToConstructorMapping only apply to objects with public construtors of one or more parameters"); } MemberToConstructorMapping mapping = new MemberToConstructorMapping(klassSrc, klassDst, isToMapFields, isToMapProperties, attributeTypeToMap, constructorInfo); mapping.PrepareMapping(); return(mapping); }