Obsoletions w bibliotece klas programu .NET Framework

Program .NET Framework zmienił się wraz z upływem czasu. Każda nowa wersja dodała nowe typy i składowe typu, które udostępniały nowe funkcje. Istniejące typy i ich elementy członkowskie również zmieniły się wraz z upływem czasu. Na przykład niektóre typy stały się mniej ważne, ponieważ obsługiwana technologia została zastąpiona przez nową technologię, a niektóre metody zostały zastąpione przez nowsze metody, które są lepsze w jakiś sposób.

.NET Framework i środowisko uruchomieniowe języka wspólnego dążą do zapewnienia zgodności z poprzednimi wersjami (dzięki czemu aplikacje opracowane przy użyciu jednej wersji programu .NET Framework będą uruchamiane w następnej wersji programu .NET Framework). Utrudnia to po prostu usunięcie typu lub elementu członkowskiego typu. Zamiast tego program .NET Framework wskazał, że typ lub element członkowski typu nie powinien być już używany przez oznaczenie go jako przestarzałe lub przestarzałe. Obsoleting typu lub członka, deweloperzy byli świadomi, że zniknie i miał czas, aby odpowiedzieć na jego usunięcie. Jednak istniejący kod, który używa typu lub elementu członkowskiego, nadal działa w nowej wersji platformy .NET.

Uwaga

W programie .NET (Core) obsoletowanie interfejsu API niekoniecznie oznacza, że interfejs API zostanie usunięty. Aby uzyskać więcej informacji, zobacz Usuwanie interfejsu API na platformie .NET.

Atrybut ObsoleteAttribute

Program .NET Framework wskazuje, że typ lub element członkowski typu jest przestarzały, oznaczając go atrybutem ObsoleteAttribute . Zastosowanie atrybutu do typu lub elementu członkowskiego wskazuje, że typ lub element członkowski zostanie usunięty w jakiejś przyszłej wersji bez przerywania skompilowanego kodu, który używa tego elementu członkowskiego.

Oprócz wskazania, że typ lub element członkowski typu jest przestarzały, definiuje sposób obsługi ObsoleteAttribute kodu źródłowego przez kompilator, który zawiera ten typ lub element członkowski. Kompilator może skompilować kod, ale emituje komunikat ostrzegawczy lub może traktować użycie typu lub elementu członkowskiego jako błąd. W pierwszym przypadku kod może pomyślnie skompilować, ale komunikat ostrzegawczy wskazuje, że typ lub element członkowski jest przestarzały. W drugim przypadku kompilacja kończy się niepowodzeniem.

Nawet jeśli kompilacja generuje błąd zamiast komunikatu ostrzegawczego, ObsoleteAttribute nie ma wpływu na zachowanie czasu wykonywania. Oznacza to, że aplikacje używające typu lub elementu członkowskiego, które zostały pomyślnie skompilowane, zawsze będą działać pomyślnie. Próba ponownego skompilowania aplikacji korzystającej z typu lub elementu członkowskiego kończy się niepowodzeniem.

Jak obsługiwać przestarzałe typy i elementy członkowskie

Podczas uaktualniania i ponownego kompilowania istniejącego kodu użycie przestarzałego typu lub elementu członkowskiego tworzącego ostrzeżenie kompilatora w aplikacji jest dopuszczalne. Należy jednak przejrzeć komunikat ostrzegawczy kompilatora, aby określić, czy należy zmienić kod aplikacji. Jeśli komunikat nie wskazuje odpowiedniej alternatywy, należy wykonać jedną z następujących czynności:

  • Zmień kod, usuwając użycie typu lub elementu członkowskiego, jeśli to możliwe.

    — lub —

  • Zapoznaj się z dokumentacją dotyczącą tego obszaru technologii, aby określić sposób reagowania na wycofanie.

Możesz zrezygnować z ponownego kompilowania istniejącego kodu względem nowszej wersji programu .NET Framework. Zamiast tego możesz określić wersję programu .NET Framework, dla której jest uruchamiany istniejący skompilowany kod. Załóżmy na przykład, że masz aplikację o nazwie app1.exe , która została skompilowana na platformie .NET Framework 3.5, ale chcesz, aby aplikacja była uruchamiana na platformie .NET Framework 4.5. Wymaga to wykonania następujących czynności:

  1. Utwórz plik konfiguracji głównego pliku wykonywalnego i nadaj mu nazwę appName.exe.config, gdzie appName jest nazwą pliku wykonywalnego aplikacji. W przypadku aplikacji o nazwie app1.exe w naszym przykładzie należy utworzyć plik konfiguracji o nazwie app1.exe.config.

  2. Dodaj następujący kod do pliku konfiguracji.

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

Aby zakierować określoną wersję programu .NET Framework, przypisz do atrybutu version jedną z następujących wartości ciągu:

Wersja systemu .NET Framework version Ciąg
4.8 (w tym 4.8.1) Wersja 4.0
4.7 (w tym 4.7.1 i 4.7.2) Wersja 4.0
4.6 (w tym 4.6.1 i 4.6.2) Wersja 4.0
4.5 (w tym 4.5.1 i 4.5.2) Wersja 4.0
100 Wersja 4.0
3.5 Wersja 2.0.50727
2.0 Wersja 2.0.50727
1.1 wersja 1.1.4322
1.0 wersja 1.0.3705

Przestarzałe interfejsy API dla programu .NET Framework w wersji 4.5 lub nowszej

Przestarzałe interfejsy API dla poprzednich wersji

Zobacz też