Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
System.Reflection.Emit.ConstructorBuilder och System.Reflection.Emit.MethodBuilder genererar nu metodparametrar som, när de reflekteras över, har ParameterInfo.HasDefaultValue angivet till false.
Tidigare beteende
Tidigare genererade ConstructorBuilder och MethodBuilder IL för metodparametrar där HasDefaultValue av parametrarna var inställt på true.
Nytt beteende
Från och med .NET 8 ConstructorBuilder och MethodBuilder generera IL för metodparametrar där parametrarna HasDefaultValue är inställda på false, vilket är det förväntade värdet.
Version lanserad
Förhandsversion 5 av .NET 8
Typ av brytande ändring
Den här ändringen är en beteendeförändring.
Orsak till ändring
Det tidigare beteendet var felaktigt eftersom inga standardparametervärden angavs när metoden eller konstruktorn definierades.
Rekommenderad åtgärd
Om du använder TypeBuilder.DefineConstructor eller TypeBuilder.DefineMethodkontrollerar du att konsumenter av de genererade typernas metoder inte förlitar sig på att ParameterInfo.HasDefaultValue egenskapen är true.