Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
| Özellik | Değer |
|---|---|
| Kural Kimliği | CA2017 |
| Başlık | Parametre sayısı uyuşmazlığı |
| Kategori | Güvenilirlik |
| Hataya neden olan veya bozulmayan düzeltme | Hataya neden olmayan |
| .NET 10'da varsayılan olarak etkin | Uyarı olarak |
Neden
Günlük iletisi şablonunda sağlanan parametre sayısı, adlandırılmış yer tutucu sayısıyla eşleşmiyor.
Kural açıklaması
Bu kural, yanlış sayıda ileti bağımsız değişkenine sahip günlükçü çağrılarına bayrak ekler.
İhlalleri düzeltme
Şablon biçimindeki yer tutucuların sayısını geçirilen bağımsız değişkenlerin sayısıyla eşleştirin.
Uyarıların ne zaman bastırılması gerekiyor?
Bu kuraldan uyarıyı bastırmayın.
Example
Aşağıdaki örnekte CA2017'yi ihlal eden yöntemler ve kuralı karşılayan yöntemler gösterilmektedir.
public class LoggingExample
{
private readonly ILogger<LoggingExample> _logger;
public LoggingExample(ILogger<LoggingExample> logger)
{
_logger = logger;
}
public void ExampleMethod()
{
string name = "Alice";
int age = 30;
// Violates CA2017: Too few arguments for placeholders.
_logger.LogInformation("User {Name} is {Age} years old and lives in {City}", name, age);
// Violates CA2017: Too many arguments for placeholders.
_logger.LogError("Error occurred: {Message}", "Something went wrong", "Extra argument");
// Correct usage: Matching number of placeholders and arguments.
_logger.LogInformation("User {Name} is {Age} years old", name, age);
}
}
Imports Microsoft.Extensions.Logging
Public Class LoggingExample
Private ReadOnly _logger As ILogger(Of LoggingExample)
Public Sub New(logger As ILogger(Of LoggingExample))
_logger = logger
End Sub
Public Sub ExampleMethod()
Dim name As String = "Alice"
Dim age As Integer = 30
' Violates CA2017: Too few arguments for placeholders.
_logger.LogInformation("User {Name} is {Age} years old and lives in {City}", name, age)
' Violates CA2017: Too many arguments for placeholders.
_logger.LogError("Error occurred: {Message}", "Something went wrong", "Extra argument")
' Correct usage: Matching number of placeholders and arguments.
_logger.LogInformation("User {Name} is {Age} years old", name, age)
End Sub
End Class