Share via


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 falseen , 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.

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.

API afectadas