Skip to content

Commit bb76522

Browse files
committed
Full work only cast Emun to object
1 parent 60878d8 commit bb76522

2 files changed

Lines changed: 9 additions & 2 deletions

File tree

src/Mapster.Tests/WhenMappingNullableEnumRegression.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,16 @@ public void NullEnumToNullClass()
1919

2020
MyClass myClass = new() { TypeEmployer = MyEnum.User };
2121

22+
MyClass myClassNull = new() { TypeEmployer = null};
23+
24+
2225
var _result = myClass?.Adapt<MyDestination?>(); // Work
2326

27+
var _resultNull = myClassNull.Adapt<MyDestination>(); // Null Not Error When (object)s if (MyEnum)s - NullReferenceException
28+
2429
_result.TypeEmployer.Key.ShouldBe(MyEnum.User.ToString());
30+
31+
_resultNull.TypeEmployer.ShouldBeNull();
2532
}
2633

2734
/// <summary>

src/Mapster/Utils/ExpressionEx.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -312,11 +312,11 @@ public static Expression NullableEnumExtractor(this Expression param)
312312

313313
if (_SourceType.IsNullable())
314314
{
315-
var _genericType = param.Type.GetGenericArguments()[0]!;
315+
var _genericType = param.Type.GetGenericArguments()[0];
316316

317317
if (_genericType.IsEnum)
318318
{
319-
var ExtractionExpression = Expression.Convert(param, _genericType);
319+
var ExtractionExpression = Expression.Convert(param, typeof(object));
320320
return ExtractionExpression;
321321
}
322322

0 commit comments

Comments
 (0)