diff --git a/src/Mapster/Adapters/ClassAdapter.cs b/src/Mapster/Adapters/ClassAdapter.cs index e77fb562..78cfacc1 100644 --- a/src/Mapster/Adapters/ClassAdapter.cs +++ b/src/Mapster/Adapters/ClassAdapter.cs @@ -53,9 +53,10 @@ protected override bool CanInline(Expression source, Expression? destination, Co protected override Expression CreateInstantiationExpression(Expression source, Expression? destination, CompileArgument arg) { //new TDestination(src.Prop1, src.Prop2) - - if (arg.DestinationType.isDefaultCtor() || arg.GetConstructUsing() != null && arg.Settings.MapToConstructor == null) - return base.CreateInstantiationExpression(source, destination, arg); + + if (arg.DestinationType.isDefaultCtor() || arg.GetConstructUsing() != null) + if (arg.Settings.MapToConstructor == null) + return base.CreateInstantiationExpression(source, destination, arg); ClassMapping? classConverter; var ctor = arg.Settings.MapToConstructor as ConstructorInfo; diff --git a/src/Mapster/Adapters/RecordTypeAdapter.cs b/src/Mapster/Adapters/RecordTypeAdapter.cs index 1836fe45..659da39c 100644 --- a/src/Mapster/Adapters/RecordTypeAdapter.cs +++ b/src/Mapster/Adapters/RecordTypeAdapter.cs @@ -40,7 +40,7 @@ protected override Expression CreateInstantiationExpression(Expression source, E SkipIgnoreNullValuesMemberMap.Clear(); Expression installExpr; - if (arg.GetConstructUsing() != null || arg.DestinationType == null) + if (arg.GetConstructUsing() != null || arg.Settings.MapToConstructor != null || arg.DestinationType == null) installExpr = base.CreateInstantiationExpression(source, destination, arg); else {