Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
.NET Framework è cambiato nel tempo. Ogni nuova versione ha aggiunto nuovi tipi e membri di tipo che hanno fornito nuove funzionalità. Anche i tipi esistenti e i relativi membri cambiano nel tempo. Ad esempio, alcuni tipi sono diventati meno importanti perché la tecnologia supportata è stata sostituita da una nuova tecnologia e alcuni metodi sono stati sostituiti da metodi più recenti che sono superiori in qualche modo.
.NET Framework e Common Language Runtime si sforzano di supportare la compatibilità con le versioni precedenti (consentendo alle applicazioni sviluppate con una versione di .NET Framework di essere eseguite nella versione successiva di .NET Framework). Ciò rende difficile rimuovere semplicemente un tipo o un membro del tipo. .NET Framework indica invece che un tipo o un membro di tipo non deve più essere usato contrassegnandolo come obsoleto o deprecato. Rendendo obsoleto un tipo o un membro, gli sviluppatori erano consapevoli del fatto che sarebbe stato rimosso e avevano il tempo di rispondere alla rimozione di esso. Tuttavia, il codice esistente che usa il tipo o il membro ha continuato a essere eseguito nella nuova versione di .NET.
Annotazioni
In .NET (Core), rendere obsoleta un'API non significa necessariamente che verrà rimossa. Per altre informazioni, vedere Rimozione di API in .NET.
L'attributo ObsoleteAttribute
.NET Framework indica che un tipo o un membro del tipo è obsoleto contrassegnandolo con l'attributo ObsoleteAttribute . L'applicazione dell'attributo a un tipo o a un membro indica che il tipo o il membro verrà rimosso in una versione futura senza interrompere il codice compilato che usa tale membro.
Oltre a indicare che un tipo o un membro di tipo è obsoleto, ObsoleteAttribute definisce il modo in cui il compilatore gestisce il codice sorgente che include tale tipo o membro. Il compilatore può compilare il codice ma generare un messaggio di avviso oppure può trattare l'uso del tipo o del membro come errore. Nel primo caso, il codice può essere compilato correttamente, ma un messaggio di avviso indica che il tipo o il membro è obsoleto. Nel secondo caso, la compilazione ha esito negativo.
Anche se la compilazione genera un errore anziché un messaggio di avviso, ObsoleteAttribute non influisce sul comportamento di runtime. Ovvero, le applicazioni che usano il tipo o il membro e che sono state compilate correttamente verranno sempre eseguite correttamente. Solo il tentativo di ricompilare un'applicazione che usa il tipo o il membro ha esito negativo.
Come gestire tipi e membri obsoleti
Quando si aggiorna e si ricompila il codice esistente, l'uso di un tipo o di un membro obsoleto che genera un avviso del compilatore nell'applicazione è accettabile. Tuttavia, è necessario esaminare il messaggio di avviso del compilatore per determinare se è necessario modificare il codice dell'applicazione. Se il messaggio non punta a un'alternativa appropriata, eseguire una delle operazioni seguenti:
Modificare il codice rimuovendo l'uso del tipo o del membro, se possibile.
oppure
Esaminare la documentazione relativa a questa area tecnologica per determinare come rispondere alla deprecazione.
È possibile scegliere di non ricompilare il codice esistente in una versione successiva di .NET Framework. È invece possibile specificare la versione di .NET Framework in cui viene eseguito il codice compilato esistente. Si supponga, ad esempio, di avere un'applicazione denominata app1.exe compilata in .NET Framework 3.5, ma si vuole che l'applicazione venga eseguita su .NET Framework 4.5. Questa operazione richiede i passaggi seguenti:
Creare un file di configurazione per il file eseguibile principale e denominarlo appName.exe.config, dove appName è il nome dell'eseguibile dell'applicazione. Per l'applicazione denominata app1.exe in questo esempio, creare un file di configurazione denominato app1.exe.config.
Aggiungere quanto segue al file di configurazione.
<configuration> <startup> <supportedRuntime version="v4.0" /> </startup> </configuration>
Per specificare come destinazione una versione specifica di .NET Framework, assegnare uno dei valori stringa seguenti all'attributo version
:
Versione di .NET Framework |
version corda |
---|---|
4.8 (incluso 4.8.1) | v4.0 |
4.7 (inclusi 4.7.1 e 4.7.2) | v4.0 |
4.6 (inclusi 4.6.1 e 4.6.2) | v4.0 |
4.5 (inclusi 4.5.1 e 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 |
API obsolete per .NET Framework 4.5 e versioni successive
API obsolete per le versioni precedenti
- Tipi obsoleti in .NET Framework 4
- Membri obsoleti in .NET Framework 4
- Elenco obsoleto di .NET Framework 3.5
- Elenco obsoleto di .NET Framework 2.0