Nguon: Microsoft Learn · .NET 8.0
ASP0016: Không trả về giá trị từ RequestDelegate
| - | Giá trị |
|---|---|
| Rule ID | ASP0016 |
| Category | Usage (Cách sử dụng) |
| Fix is breaking or non-breaking | Non-breaking (Không phá vỡ tương thích) |
Nguyên nhân
Một phương thức được dùng để tạo RequestDelegate trả về Task<T>. RequestDelegate bỏ qua giá trị này.
Mô tả quy tắc
Không trả về giá trị từ các Delegate (ủy quyền) được cung cấp cho các API kỳ vọng RequestDelegate. Ví dụ, đoạn mã sau trả về Task<string> trong đó giá trị string của Task sẽ bị bỏ qua (discard).
csharp
var app = WebApplication.Create();
app.Use(next =>
{
return new RequestDelegate((HttpContext context) =>
{
return Task.FromResult("hello world");
});
});Cách khắc phục vi phạm
Để khắc phục vi phạm quy tắc này, hãy đổi kiểu trả về thành Task không generic, hoặc nếu delegate là một route handler (trình xử lý route), hãy ép kiểu (cast) nó thành Delegate để giá trị trả về được ghi vào response (phản hồi).
Khi nào nên bỏ qua cảnh báo
Không nên bỏ qua cảnh báo từ quy tắc này.