Obsoletions in the .NET Framework class library
Rozhraní .NET Framework se v průběhu času změnilo. Každá nová verze přidala nové typy a členy typů, které poskytovaly nové funkce. Stávající typy a jejich členy se také v průběhu času změnily. Například některé typy začaly být méně důležité, protože technologie, které podporují, byly nahrazeny novou technologií a některé metody byly nahrazeny novějšími metodami, které jsou nějakým způsobem nadřízeny.
Rozhraní .NET Framework a modul CLR se snaží podporovat zpětnou kompatibilitu (což umožňuje aplikacím vyvinutým s jednou verzí rozhraní .NET Framework, aby běžely na další verzi rozhraní .NET Framework). To znesnadňuje jednoduše odebrání typu nebo člena typu. Místo toho rozhraní .NET Framework uvedlo, že typ nebo člen typu by se už neměl používat tím, že ho označíte jako zastaralé nebo zastaralé. Díky obsodolování typu nebo člena vývojáři věděli, že by odejít a měli čas reagovat na jeho odebrání. Existující kód, který používá typ nebo člen, se však nadále spouštět v nové verzi .NET.
Poznámka:
V .NET (Core) obsoleting rozhraní API nemusí 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 člen typu je zastaralý tím, že ho označíte atributem ObsoleteAttribute . Použití atributu na typ nebo člen označuje, že typ nebo člen bude odebrán v některé budoucí verzi bez přerušení zkompilovaného kódu, který tento člen používá.
Kromě označení, že typ nebo člen typu je zastaralý, definuje, ObsoleteAttribute jak kompilátor zpracovává zdrojový kód, který obsahuje tento typ nebo člen. Kompilátor může kód zkompilovat, ale vygenerovat zprávu s upozorněním nebo může zacházet s použitím typu nebo člena jako s chybou. V prvním případě může kód úspěšně zkompilovat, ale zpráva s upozorněním indikuje, že typ nebo člen je zastaralý. V druhém případě kompilace selže.
I v případě, že kompilace místo zprávy s upozorněním vyvolá chybu, ObsoleteAttribute nemá vliv na chování za běhu. To znamená, že aplikace, které používají typ nebo člen a které byly úspěšně zkompilovány, budou vždy úspěšně spuštěny. Pouze pokus o překompilování aplikace, která používá typ nebo člen, selže.
Zpracování zastaralých typů a členů
Při upgradu a opětovném kompilaci existujícího kódu je přijatelné použití zastaralého typu nebo člena, který v aplikaci vytvoří upozornění kompilátoru. Měli byste ale zkontrolovat zprávu upozornění kompilátoru a zjistit, 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 odebráním použití typu nebo člena.
nebo
Projděte si dokumentaci k této technologické oblasti a zjistěte, jak reagovat na vyřazení.
Můžete se rozhodnout nekompilovat existující kód proti novější verzi rozhraní .NET Framework. Místo toho můžete zadat verzi rozhraní .NET Framework, pro kterou se spouští váš existující zkompilovaný kód. Předpokládejme například, že máte aplikaci s názvem app1.exe , která byla zkompilována proti 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ázvem app1.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 jednu z následujících řetězcových hodnot version
:
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
- Zastaralý seznam rozhraní .NET Framework 3.5
- Zastaralý seznam rozhraní .NET Framework 2.0