Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
System.Reflection.Emit.ConstructorBuilder и System.Reflection.Emit.MethodBuilder теперь создают параметры метода, для которых при отражении устанавливается ParameterInfo.HasDefaultValue в false.
Предыдущее поведение
Ранее ConstructorBuilder и MethodBuilder генерировали IL для параметров метода, где HasDefaultValue параметров было установлено на true.
Новое поведение
Начиная с .NET 8, ConstructorBuilder и MethodBuilder создают IL для параметров метода, где HasDefaultValue параметров задано значением false, ожидаемого значения.
Представленная версия
.NET 8( предварительная версия 5)
Тип разрушающего изменения
Причина изменения
Предыдущее поведение было неверным, так как значения параметров по умолчанию не были указаны при определении метода или конструктора.
Рекомендуемое действие
Если используется TypeBuilder.DefineConstructor или TypeBuilder.DefineMethodубедитесь, что потребители методов созданных типов не полагаются на ParameterInfo.HasDefaultValue свойство true.