Training
Module
Null-veiligheid in C# - Training
Leer hoe u codeert om te voorkomen dat NullReferenceException voorkomt.
Deze browser wordt niet meer ondersteund.
Upgrade naar Microsoft Edge om te profiteren van de nieuwste functies, beveiligingsupdates en technische ondersteuning.
Projecten die de eigenschap PublishTrimmed MSBuild inschakelen, schakelen nu automatisch de standaardinstellingen op basis van weerspiegeling van System.Text.Json uit. Met andere woorden, instelling PublishTrimmed
voor true
het automatisch instellen van de JsonSerializerIsReflectionEnabledByDefault
MSBuild-eigenschap op false
tenzij anders opgegeven in de projectconfiguratie.
Vóór deze wijziging hebben projecten waarvoor de PublishTrimmed
eigenschap is ingeschakeld, dat wil <PublishTrimmed>true</PublishTrimmed>
gezegd, een bijgesneden toepassing gepubliceerd. Het standaardserialisatiegedrag op basis van weerspiegeling is echter niet noodzakelijkerwijs uitgeschakeld. Afhankelijk van de code die is ingekort, kan de volgende code serialisatie wel of niet lukken, of worden de juiste serialisatiegegevens wel of niet uitgevoerd.
JsonSerializer.Serialize(new { Value = 42 });
Vanaf .NET 8 mislukken projecten waarvoor de PublishTrimmed
eigenschap is ingeschakeld, de serialisatie. De code JsonSerializer.Serialize(new { Value = 42 });
genereert de volgende uitzondering:
System.InvalidOperationException: Serialisatie op basis van reflectie is uitgeschakeld voor deze toepassing.
.NET 8 Preview 7
Deze wijziging is een gedragswijziging.
Deze wijziging zorgt ervoor dat bijgesneden toepassingen gebruikmaken van de juiste standaardinstellingen. Het helpt gebruikers ook om aanbevolen procedures te gebruiken die geschikt zijn voor bijgesneden toepassingen, dat wil gezegd, de brongenerator gebruiken en onbedoelde afhankelijkheid van de onveilige onderdelen op basis van weerspiegeling voorkomen.
Om ervoor te zorgen dat serialisatie-suceeds, raden we u aan uw bijgesneden toepassingen te migreren om de brongenerator te gebruiken.
Als u echter weerspiegeling moet gebruiken, kunt u het oorspronkelijke gedrag herstellen door de JsonSerializerIsReflectionEnabledByDefault
eigenschap expliciet in te schakelen in uw projectbestand:
<PropertyGroup>
<PublishTrimmed>true</PublishTrimmed>
<JsonSerializerIsReflectionEnabledByDefault>true</JsonSerializerIsReflectionEnabledByDefault>
</PropertyGroup>
N.v.t.
Feedback over .NET
.NET is een opensourceproject. Selecteer een koppeling om feedback te geven:
Training
Module
Null-veiligheid in C# - Training
Leer hoe u codeert om te voorkomen dat NullReferenceException voorkomt.