@@ -60,7 +60,6 @@ private void UpdateModelFactoryMethod(MethodProvider method, CSharpType returnTy
6060 var parameterMap = new Dictionary < ParameterProvider , ParameterProvider > ( ) ;
6161 var updatedParameters = new List < ParameterProvider > ( method . Signature . Parameters . Count ) ;
6262 var updated = false ;
63- var parameterShouldBeNullable = false ; // if the previous method parameter is nullable, we need to ensure that the current parameter is also set with default value
6463 foreach ( var parameter in method . Signature . Parameters )
6564 {
6665 if ( propertyNameMap . TryGetValue ( parameter . Name , out var value ) )
@@ -70,35 +69,24 @@ private void UpdateModelFactoryMethod(MethodProvider method, CSharpType returnTy
7069 {
7170 // If the flattened property is a value type, we need to ensure that we handle the nullability correctly.
7271 var propertyParameter = flattenedProperty . AsParameter ;
73- if ( parameterShouldBeNullable || flattenedProperty . Type . IsNullable )
74- {
75- // The same parameter is used in public constructor, we need a new copy for model factory method with different nullability.
76- var updatedParameter = new ParameterProvider ( propertyParameter . Name , propertyParameter . Description , propertyParameter . Type , propertyParameter . DefaultValue ,
77- propertyParameter . IsRef , propertyParameter . IsOut , propertyParameter . IsParams , propertyParameter . Attributes , propertyParameter . Property ,
78- propertyParameter . Field , propertyParameter . InitializationValue , propertyParameter . Location , propertyParameter . WireInfo , propertyParameter . Validation ) ;
7972
80- if ( isOverriddenValueType )
81- {
82- updatedParameter . Update ( type : updatedParameter . Type . WithNullable ( true ) ) ;
83- }
84- parameterShouldBeNullable = true ;
85- updatedParameter . DefaultValue = Default ; // Ensure that the default value is set to null for nullable types
73+ // The same parameter is used in public constructor, we need a new copy for model factory method with different nullability.
74+ var updatedParameter = new ParameterProvider ( propertyParameter . Name , propertyParameter . Description , propertyParameter . Type , propertyParameter . DefaultValue ,
75+ propertyParameter . IsRef , propertyParameter . IsOut , propertyParameter . IsParams , propertyParameter . Attributes , propertyParameter . Property ,
76+ propertyParameter . Field , propertyParameter . InitializationValue , propertyParameter . Location , propertyParameter . WireInfo , propertyParameter . Validation ) ;
8677
87- parameterMap . Add ( propertyParameter , updatedParameter ) ;
88- updatedParameters . Add ( updatedParameter ) ;
89- }
90- else
78+ if ( isOverriddenValueType )
9179 {
92- updatedParameters . Add ( propertyParameter ) ;
80+ updatedParameter . Update ( type : updatedParameter . Type . WithNullable ( true ) ) ;
9381 }
82+ updatedParameter . DefaultValue = Default ; // Ensure that the default value is set to null for nullable types
83+
84+ parameterMap . Add ( propertyParameter , updatedParameter ) ;
85+ updatedParameters . Add ( updatedParameter ) ;
9486 }
9587 }
9688 else
9789 {
98- if ( parameter . Type . IsNullable )
99- {
100- parameterShouldBeNullable = true ;
101- }
10290 updatedParameters . Add ( parameter ) ;
10391 }
10492 }
0 commit comments