Los generadores de métodos generan parámetros con HasDefaultValue establecido en false
System.Reflection.Emit.ConstructorBuilder y System.Reflection.Emit.MethodBuilder ahora generan parámetros de método que, cuando se reflejan, tienen ParameterInfo.HasDefaultValue establecido en false
.
Comportamiento anterior
Anteriormente, ConstructorBuilder y MethodBuilder IL generado para parámetros de método en los que el HasDefaultValue de los parámetros se estableció en true
.
Comportamiento nuevo
A partir de .NET 8, ConstructorBuilder y MethodBuilder genere IL para parámetros de método donde el HasDefaultValue de los parámetros está establecido false
en , que es el valor esperado.
Versión introducida
.NET 8 (versión preliminar 5)
Tipo de cambio importante
Este es un cambio de comportamiento.
Motivo del cambio
El comportamiento anterior era incorrecto, ya que no se especificaron valores de parámetro predeterminados cuando se definió el método o constructor.
Acción recomendada
Si usa TypeBuilder.DefineConstructor o TypeBuilder.DefineMethod, asegúrese de que los consumidores de los métodos de los tipos generados no se basan en la ParameterInfo.HasDefaultValuepropiedad sea true
.