Az .NET-keretrendszer osztálytár elavulásai
.NET-keretrendszer idővel megváltoztak. Minden új verzió új típusokat és típustagokat adott hozzá, amelyek új funkciókat biztosítottak. A meglévő típusok és tagjaik is idővel megváltoztak. Egyes típusok például kevésbé váltak fontossá, mivel az általuk támogatott technológiát egy új technológia váltotta fel, és egyes módszereket felváltottak az újabb módszerek, amelyek valamilyen módon jobbak.
.NET-keretrendszer és a közös nyelvi futtatókörnyezet arra törekszik, hogy támogassa a visszamenőleges kompatibilitást (lehetővé téve, hogy az .NET-keretrendszer egyik verziójával fejlesztett alkalmazások a .NET-keretrendszer következő verzióján fussanak). Emiatt nehéz egyszerűen eltávolítani egy típust vagy egy típustagot. Ehelyett .NET-keretrendszer azt jelzi, hogy egy típust vagy típustagot már nem szabad elavultként vagy elavultként megjelölni. Egy típus vagy tag elavulásával a fejlesztők tisztában voltak azzal, hogy az eltűnik, és ideje lesz válaszolni az eltávolítására. A típust vagy tagot használó meglévő kód azonban továbbra is a .NET új verziójában fut.
Feljegyzés
A .NET -ben (Core) az API elavulása nem feltétlenül jelenti azt, hogy az API el lesz távolítva. További információ: API-eltávolítás a .NET-ben.
Az ElavultAttribute attribútum
.NET-keretrendszer azt jelzi, hogy egy típus vagy típustag elavult az ObsoleteAttribute attribútummal való megjelölésével. Ha az attribútumot egy típusra vagy tagra alkalmazza, az azt jelzi, hogy a típus vagy tag egy későbbi verzióban az adott tagot használó lefordított kód feltörése nélkül törlődik.
Amellett, hogy jelzi, hogy egy típus vagy egy típustag elavult, meghatározza, ObsoleteAttribute hogy a fordító hogyan kezeli az adott típust vagy tagot tartalmazó forráskódot. A fordító lefordíthatja a kódot, de figyelmeztető üzenetet küld, vagy hibaként kezelheti a típus vagy tag használatát. Az első esetben a kód sikeresen lefordítható, de egy figyelmeztető üzenet azt jelzi, hogy a típus vagy tag elavult. A második esetben a fordítás meghiúsul.
Még akkor sem befolyásolja a futásidejű viselkedést, ObsoleteAttribute ha a fordítás figyelmeztetés helyett hibát okoz. Ez azt jelzi, hogy a típust vagy tagot használó és sikeresen lefordított alkalmazások mindig sikeresen futnak. Csak a típust vagy tagot használó alkalmazás újrafordítására tett kísérlet meghiúsul.
Elavult típusok és tagok kezelése
Meglévő kód frissítése és újrafordítása esetén elfogadható egy elavult típus vagy tag használata, amely fordító figyelmeztetést állít elő az alkalmazásban. Érdemes azonban áttekinteni a fordító figyelmeztetését annak megállapításához, hogy módosítania kell-e az alkalmazás kódját. Ha az üzenet nem mutat megfelelő alternatívára, tegye az alábbiak egyikét:
Ha lehetséges, módosítsa a kódot úgy, hogy eltávolítja a típus vagy tag használatát.
-vagy-
Tekintse át a technológiai terület dokumentációját, és állapítsa meg, hogyan reagálhat az elavulásra.
Dönthet úgy, hogy nem fordítja újra a meglévő kódot a .NET-keretrendszer egy későbbi verziójával. Ehelyett megadhatja a .NET-keretrendszer azon verzióját, amelyen a meglévő lefordított kód fut. Tegyük fel például, hogy van egy app1.exe nevű alkalmazás, amely a 3.5-ös .NET-keretrendszer lett lefordítva, de azt szeretné, hogy az alkalmazás a .NET-keretrendszer 4.5-ös verzióval fusson. Ehhez a következő lépések szükségesek:
Hozzon létre egy konfigurációs fájlt a fő végrehajtható fájlhoz, és nevezze el az appName.exe.config nevet, ahol az appName a végrehajtható alkalmazás neve. A példánkban app1.exe nevű alkalmazáshoz létre kell hoznia egy app1.exe.config nevű konfigurációs fájlt.
Adja hozzá a következőket a konfigurációs fájlhoz.
<configuration> <startup> <supportedRuntime version="v4.0" /> </startup> </configuration>
A .NET-keretrendszer egy adott verziójának megcélzásához rendelje hozzá az alábbi sztringértékek egyikét az version
attribútumhoz:
.NET-keretrendszer verziója | version Karakterlánc |
---|---|
4.8 (beleértve a 4.8.1-et) | 4.0-s verzió |
4.7 (beleértve a 4.7.1 és a 4.7.2) | 4.0-s verzió |
4.6 (beleértve a 4.6.1 és a 4.6.2) | 4.0-s verzió |
4.5 (beleértve a 4.5.1 és a 4.5.2) | 4.0-s verzió |
4 | 4.0-s verzió |
3,5 | v2.0.50727 |
2,0 | v2.0.50727 |
1,1 | 1.1.4322-s verzió |
1,0 | 1.0.3705-ös verzió |
Elavult API-k .NET-keretrendszer 4.5-ös és újabb verziókhoz
Elavult API-k a korábbi verziókhoz
- Elavult típusok a .NET-keretrendszer 4-ben
- Elavult tagok a .NET-keretrendszer 4-ben
- .NET-keretrendszer 3.5 Elavult lista
- .NET-keretrendszer 2.0 Elavult lista