Obsoletions in de .NET Framework-klassebibliotheek

.NET Framework is in de loop van de tijd gewijzigd. Elke nieuwe versie heeft nieuwe typen en typeleden toegevoegd die nieuwe functionaliteit bieden. Bestaande typen en hun leden zijn ook in de loop van de tijd gewijzigd. Sommige typen werden bijvoorbeeld minder belangrijk omdat de technologie die ze ondersteunden, werd vervangen door een nieuwe technologie en sommige methoden werden vervangen door nieuwere methoden die op een of andere manier superieure methoden zijn.

.NET Framework en de algemene taalruntime streven ernaar om achterwaartse compatibiliteit te ondersteunen (zodat toepassingen die zijn ontwikkeld met één versie van .NET Framework, kunnen worden uitgevoerd op de volgende versie van .NET Framework). Dit maakt het moeilijk om eenvoudig een type of een type lid te verwijderen. In plaats daarvan heeft .NET Framework aangegeven dat een type of typelid niet meer mag worden gebruikt door het te markeren als verouderd of afgeschaft. Door een type of lid te verdoezelen, waren ontwikkelaars zich ervan bewust dat het zou verdwijnen en tijd hadden om te reageren op de verwijdering. Bestaande code die gebruikmaakt van het type of lid, blijft echter worden uitgevoerd in de nieuwe versie van .NET.

Notitie

In .NET (Core) betekent obsoleting van een API niet noodzakelijkerwijs dat de API wordt verwijderd. Zie API-verwijdering in .NET voor meer informatie.

Het kenmerk ObsoleteAttribute

.NET Framework geeft aan dat een type of type lid verouderd is door het te markeren met het ObsoleteAttribute kenmerk. Als u het kenmerk toepast op een type of lid, wordt aangegeven dat het type of lid in een toekomstige versie wordt verwijderd zonder dat de gecompileerde code die dat lid gebruikt, wordt onderbroken.

Naast het aangeven dat een type of een typelid verouderd is, ObsoleteAttribute definieert u hoe de compiler broncode verwerkt die dat type of lid bevat. De compiler kan de code compileren, maar een waarschuwingsbericht verzenden of het gebruik van het type of lid als een fout behandelen. In het eerste geval kan de code worden gecompileerd, maar een waarschuwingsbericht geeft aan dat het type of lid verouderd is. In het tweede geval mislukt de compilatie.

Zelfs als compilatie een fout veroorzaakt in plaats van een waarschuwingsbericht, ObsoleteAttribute heeft dit geen invloed op het runtimegedrag. Dat wil gezegd: toepassingen die gebruikmaken van het type of lid en die zijn gecompileerd, worden altijd succesvol uitgevoerd. Alleen de poging om een toepassing die gebruikmaakt van het type of lid opnieuw te compileren, mislukt.

Verouderde typen en leden verwerken

Wanneer u bestaande code bijwerken en opnieuw compileren, is het gebruik van een verouderd type of lid dat een compilerwaarschuwing produceert in uw toepassing acceptabel. Controleer echter het waarschuwingsbericht van de compiler om te bepalen of u de toepassingscode moet wijzigen. Als het bericht niet verwijst naar een geschikt alternatief, moet u een van de volgende handelingen uitvoeren:

  • Wijzig uw code door het gebruik van het type of lid te verwijderen, indien mogelijk.

    – of –

  • Raadpleeg de documentatie voor dit technologiegebied om te bepalen hoe moet worden gereageerd op de afschaffing.

U kunt ervoor kiezen om bestaande code niet opnieuw te compileren op basis van een latere versie van .NET Framework. In plaats daarvan kunt u de versie van .NET Framework opgeven waarop uw bestaande gecompileerde code wordt uitgevoerd. Stel dat u een toepassing hebt met de naam app1.exe die is gecompileerd op .NET Framework 3.5, maar u wilt dat de toepassing wordt uitgevoerd op .NET Framework 4.5. Hiervoor zijn de volgende stappen vereist:

  1. Maak een configuratiebestand voor het belangrijkste uitvoerbare bestand en noem het appName.exe.config, waarbij appName de naam is van het uitvoerbare toepassingsbestand. Voor de toepassing met de naam app1.exe in ons voorbeeld maakt u een configuratiebestand met de naam app1.exe.config.

  2. Voeg het volgende toe aan het configuratiebestand.

    <configuration>
       <startup>
          <supportedRuntime version="v4.0" />
       </startup>
    </configuration>
    

Als u een specifieke versie van .NET Framework wilt toepassen, wijst u een van de volgende tekenreekswaarden toe aan het version kenmerk:

Versie van .NET Framework version Tekenreeks
4.8 (inclusief 4.8.1) v4.0
4.7 (inclusief 4.7.1 en 4.7.2) v4.0
4.6 (inclusief 4.6.1 en 4.6.2) v4.0
4.5 (inclusief 4.5.1 en 4.5.2) v4.0
4 v4.0
3.5 v2.0.50727
2.0 v2.0.50727
1.1 v1.1.4322
1.0 v1.0.3705

Verouderde API's voor .NET Framework 4.5 en latere versies

Verouderde API's voor eerdere versies

Zie ook