Les générateurs de méthodes génèrent des paramètres avec HasDefaultValue défini sur False
System.Reflection.Emit.ConstructorBuilder et System.Reflection.Emit.MethodBuilder maintenant génèrent des paramètres de méthode qui, lorsqu’ils sont réfléchis, ont ParameterInfo.HasDefaultValue défini sur false
.
Comportement précédent
Précédemment, ConstructorBuilder et MethodBuilder généraient IL pour les paramètres de méthode où HasDefaultValue des paramètres a été défini sur true
.
Nouveau comportement
À compter de .NET 8, ConstructorBuilder et MethodBuilder génèrent IL pour les paramètres de méthode où HasDefaultValue des paramètres est défini sur false
, qui est la valeur attendue.
Version introduite
.NET 8 Preview 5
Type de changement cassant
Ce changement est un changement de comportement.
Raison du changement
Le comportement précédent était incorrect, car aucune valeur de paramètre par défaut n’a été spécifiée lors de la définition de la méthode ou du constructeur.
Action recommandée
Si vous utilisez TypeBuilder.DefineConstructor ou TypeBuilder.DefineMethod, assurez-vous que les consommateurs des méthodes des types générés ne s’appuient pas sur la propriété ParameterInfo.HasDefaultValue étant true
.