Sdílet prostřednictvím


Upozornění CA2247: Argument pro konstruktor TaskCompletionSource by měl být TaskCreationOptions hodnota

Pravidlo analyzátoru kódu .NET CA2247 je ve výchozím nastavení povolené počínaje rozhraním .NET 5. Vytvoří upozornění sestavení pro volání TaskCompletionSource<TResult> konstruktoru, který předává argument typu TaskContinuationOptions.

Změna popisu

Počínaje rozhraním .NET 5 obsahuje sada .NET SDK analyzátory zdrojového kódu .NET. Některé z těchto pravidel jsou ve výchozím nastavení povolené, včetně CA2247. Pokud váš projekt obsahuje kód, který porušuje toto pravidlo a je nakonfigurovaný tak, aby zacházel s upozorněními jako s chybami, může tato změna přerušit sestavení.

Pravidlo CA2247 najde volání konstruktoru TaskCompletionSource<TResult> , který předává argument typu TaskContinuationOptions. Typ TaskCompletionSource<TResult> má konstruktor, který přijímá TaskCreationOptions hodnotu, a jiný konstruktor, který přijímá .Object Pokud omylem předáte TaskContinuationOptions hodnotu místo TaskCreationOptions hodnoty, je konstruktor s parametrem Object volána za běhu. Váš kód se zkompiluje a spustí, ale nebude mít zamýšlené chování.

Zavedená verze

5,0

  • TaskContinuationOptions Nahraďte argument odpovídající TaskCreationOptions hodnotou. Nepotlačujte toto upozornění, protože téměř vždy zvýrazňuje chybu v kódu. Další informace najdete v tématu CA2247.

  • Pokud chcete analýzu kódu úplně zakázat, nastavte EnableNETAnalyzers v false souboru projektu. Další informace naleznete v tématu EnableNETAnalyzers.

Ovlivněná rozhraní API