Condividi tramite


Avviso CA2247: l'argomento del costruttore TaskCompletionSource deve essere il valore TaskCreationOptions

La regola CA2247 dell'analizzatore del codice .NET è abilitata, per impostazione predefinita, a partire da .NET 5. Genera un avviso di compilazione per le chiamate al costruttore TaskCompletionSource<TResult> che passano un argomento di tipo TaskContinuationOptions.

Descrizione delle modifiche

A partire da .NET 5, .NET SDK include analizzatori del codice sorgente .NET. Diverse di queste regole sono abilitate, per impostazione predefinita, tra cui CA2247. Se il progetto contiene codice che viola questa regola ed è configurato per considerare gli avvisi come errori, questa modifica potrebbe interrompere la compilazione.

La regola CA2247 trova le chiamate al costruttore TaskCompletionSource<TResult> che passano un argomento di tipo TaskContinuationOptions. Il tipo TaskCompletionSource<TResult> ha un costruttore che accetta un valore TaskCreationOptions e un altro costruttore che accetta un Object. Se si passa accidentalmente un valore TaskContinuationOptions anziché un valore TaskCreationOptions, il costruttore con il parametro Object viene chiamato in fase di esecuzione. Il codice verrà compilato ed eseguito ma non avrà il comportamento previsto.

Versione introdotta

5.0

  • Sostituire l'argomento TaskContinuationOptions con il valore TaskCreationOptions corrispondente. Non eliminare questo avviso, perché evidenzia quasi sempre un bug nel codice. Per altre informazioni, vedere CA2247.

  • Per disabilitare completamente l'analisi del codice, impostare EnableNETAnalyzers su false nel file di progetto. Per altre informazioni, vedere EnableNETAnalyzers.

API interessate