From acaebe20a04b681d6d745f84165b7af943c88ba1 Mon Sep 17 00:00:00 2001 From: DocSvartz Date: Wed, 25 Mar 2026 23:40:31 +0500 Subject: [PATCH 1/2] fix: fix #895 Regression in v10 - ConstructUsing and MapToConstructor disable if class have public parameterless constructor new() --- src/Mapster/Adapters/ClassAdapter.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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; From fa65c71f434ee6fefea5d2ff3ca1cd7b9e0ef358 Mon Sep 17 00:00:00 2001 From: DocSvartz Date: Thu, 26 Mar 2026 05:44:15 +0500 Subject: [PATCH 2/2] fix: MapToConstructor for RecordType --- src/Mapster/Adapters/RecordTypeAdapter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 {