Obsoletions in the .NET Framework class library
Rozhraní .NET Framework se v průběhu času měnily. Každá nová verze přidala nové typy a členy typu, které poskytovaly nové funkce. V průběhu času se také měnily existující typy a jejich členy. Například některé typy začaly být méně důležité, protože technologie, které podporovaly, byly nahrazeny novou technologií a některé metody byly nahrazeny novějšími metodami, které jsou nějakým způsobem nadřazené.
Rozhraní .NET Framework a modul CLR (Common Language Runtime) se snaží podporovat zpětnou kompatibilitu (což umožňuje aplikacím vyvinutým s jednou verzí rozhraní .NET Framework běžet v další verzi rozhraní .NET Framework). To ztěžuje jednoduše odebrání typu nebo člena typu. Místo toho rozhraní .NET Framework indikovalo, že typ nebo člen typu by již neměl být používán označením jako zastaralý nebo zastaralý. Díky obsoletingu typu nebo člena si vývojáři byli vědomi, že zmizí a mají čas reagovat na jeho odebrání. Stávající kód, který používá typ nebo člena, však nadále běžel v nové verzi .NET.
Poznámka
V .NET (Core) nemusí obsoleting rozhraní API nutně znamenat, že se rozhraní API odebere. Další informace najdete v tématu Odebrání rozhraní API v .NET.
Atribut ObsoleteAttribute
Rozhraní .NET Framework označuje, že typ nebo typ člen je zastaralý tím, že ho označí atributem ObsoleteAttribute . Použití atributu na typ nebo člen znamená, že typ nebo člen bude odebrán v některé budoucí verzi bez porušení zkompilovaného kódu, který používá tento člen.
Kromě označení, že typ nebo člen typu je zastaralý, ObsoleteAttribute definuje, jak kompilátor zpracovává zdrojový kód, který tento typ nebo člen zahrnuje. Kompilátor může zkompilovat kód, ale vygenerovat zprávu upozornění, nebo může považovat použití typu nebo člena za chybu. V prvním případě se kód může úspěšně zkompilovat, ale zpráva upozornění indikuje, že typ nebo člen je zastaralý. V druhém případě kompilace selže.
I když kompilace místo varovné zprávy vyvolá chybu, ObsoleteAttribute nemá vliv na chování za běhu. To znamená, že aplikace, které používají typ nebo člen a které se úspěšně zkompilovaly, budou vždy úspěšně spuštěny. Pouze pokus o rekompilování aplikace, která používá typ nebo člena, se nezdaří.
Zpracování zastaralých typů a členů
Při upgradu a rekompilování existujícího kódu je použití zastaralého typu nebo člena, který ve vaší aplikaci vytvoří upozornění kompilátoru, přijatelné. Měli byste ale zkontrolovat zprávu s upozorněním kompilátoru, abyste zjistili, jestli byste měli změnit kód aplikace. Pokud zpráva neodkazuje na vhodnou alternativu, měli byste udělat jednu z těchto věcí:
Pokud je to možné, změňte kód tak, že odeberete použití typu nebo člena.
-nebo-
Projděte si dokumentaci pro tuto technologickou oblast a zjistěte, jak reagovat na vyřazení.
Můžete se rozhodnout, že nebudete překompilovat existující kód proti novější verzi rozhraní .NET Framework. Místo toho můžete zadat verzi rozhraní .NET Framework, se kterou se váš stávající zkompilovaný kód spustí. Předpokládejme například, že máte aplikaci s názvem app1.exe , která byla zkompilována v rozhraní .NET Framework 3.5, ale chcete, aby aplikace běžela v rozhraní .NET Framework 4.5. To vyžaduje následující kroky:
Vytvořte konfigurační soubor pro hlavní spustitelný soubor a pojmenujte ho appName.exe.config, kde appName je název spustitelného souboru aplikace. Pro aplikaci s názvem app1.exe v našem příkladu byste vytvořili konfigurační soubor s názvemapp1.exe.config.
Do konfiguračního souboru přidejte následující kód.
<configuration> <startup> <supportedRuntime version="v4.0" /> </startup> </configuration>
Pokud chcete cílit na konkrétní verzi rozhraní .NET Framework, přiřaďte atributu version
jednu z následujících řetězcových hodnot:
Verze rozhraní .NET Framework | version Řetězec |
---|---|
4.8 (včetně 4.8.1) | v4.0 |
4.7 (včetně 4.7.1 a 4.7.2) | v4.0 |
4.6 (včetně 4.6.1 a 4.6.2) | v4.0 |
4.5 (včetně 4.5.1 a 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 |
Zastaralá rozhraní API pro rozhraní .NET Framework 4.5 a novější verze
Zastaralá rozhraní API pro předchozí verze
- Zastaralé typy v rozhraní .NET Framework 4
- Zastaralé členy v rozhraní .NET Framework 4
- Seznam zastaralých rozhraní .NET Framework 3.5
- Seznam zastaralých rozhraní .NET Framework 2.0