Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.