Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
System.Reflection.Emit.ConstructorBuilder y System.Reflection.Emit.MethodBuilder ahora generan parámetros de método que, al ser reflejados, tienen ParameterInfo.HasDefaultValue establecido en false.
Comportamiento anterior
Anteriormente, ConstructorBuilder y MethodBuilder generaban IL para definir los parámetros de método donde el HasDefaultValue de los parámetros se establecían en true.
Nuevo comportamiento
A partir de .NET 8, ConstructorBuilder y MethodBuilder generan IL para parámetros de método donde el HasDefaultValue de los parámetros se establece en false, que es el valor esperado.
Versión introducida
.NET 8 (versión preliminar 5)
Tipo de cambio disruptivo
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.