Ostrzeżenie CA2247: Argument dla konstruktora TaskCompletionSource powinien mieć wartość TaskCreationOptions
Reguła analizatora kodu platformy .NET CA2247 jest domyślnie włączona, począwszy od platformy .NET 5. Tworzy ostrzeżenie kompilacji dla wywołań TaskCompletionSource<TResult> konstruktora, który przekazuje argument typu TaskContinuationOptions.
Opis zmiany
Począwszy od platformy .NET 5, zestaw .NET SDK zawiera analizatory kodu źródłowego platformy .NET. Kilka z tych reguł jest domyślnie włączonych, w tym CA2247. Jeśli projekt zawiera kod, który narusza tę regułę i jest skonfigurowany do traktowania ostrzeżeń jako błędów, ta zmiana może spowodować przerwanie kompilacji.
Reguła CA2247 znajduje wywołania konstruktora TaskCompletionSource<TResult> , który przekazuje argument typu TaskContinuationOptions. Typ TaskCompletionSource<TResult> ma konstruktor, który akceptuje TaskCreationOptions wartość, a inny konstruktor, który akceptuje Objectelement . Jeśli przypadkowo przekażesz TaskContinuationOptions wartość zamiast TaskCreationOptions wartości, konstruktor z parametrem Object jest wywoływany w czasie wykonywania. Kod zostanie skompilowany i uruchomiony, ale nie będzie miał zamierzonego zachowania.
Wprowadzona wersja
5,0
Zalecana akcja
Zastąp TaskContinuationOptions argument odpowiednią TaskCreationOptions wartością. Nie pomijaj tego ostrzeżenia, ponieważ prawie zawsze wyróżnia usterkę w kodzie. Aby uzyskać więcej informacji, zobacz CA2247.
Aby całkowicie wyłączyć analizę kodu, ustaw wartość
EnableNETAnalyzers
nafalse
w pliku projektu. Aby uzyskać więcej informacji, zobacz EnableNETAnalyzers.