Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
System.Reflection.Emit.ConstructorBuilder e System.Reflection.Emit.MethodBuilder agora geram parâmetros de método que, quando refletidos, têm ParameterInfo.HasDefaultValue definido como false.
Comportamento anterior
Anteriormente, ConstructorBuilder e MethodBuilder gerou IL para parâmetros de método onde o HasDefaultValue dos parâmetros foi definido como true.
Novo comportamento
A partir do .NET 8, ConstructorBuilder e MethodBuilder geram IL para parâmetros de método onde o HasDefaultValue dos parâmetros é definido como false, que é o valor esperado.
Versão introduzida
.NET 8 Prévia 5
Tipo de mudança disruptiva
Esta alteração é de natureza comportamental .
Motivo da mudança
O comportamento anterior estava incorreto, pois nenhum valor de parâmetro padrão foi especificado quando o método ou construtor foi definido.
Ação recomendada
Se utilizar TypeBuilder.DefineConstructor ou TypeBuilder.DefineMethod, certifique-se de que os consumidores dos métodos dos tipos gerados não confiem que a propriedade ParameterInfo.HasDefaultValue seja true.