diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2017.md b/docs/fundamentals/code-analysis/quality-rules/ca2017.md
index 9b765669de2f1..9ee3d60a013cb 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2017.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2017.md
@@ -1,7 +1,8 @@
---
title: "CA2017: Parameter count mismatch (code analysis)"
description: "Learn about code analysis rule CA2017: Parameter count mismatch"
-ms.date: 01/19/2022
+ms.date: 09/24/2025
+ai-usage: ai-assisted
f1_keywords:
- "LoggerMessageDefineAnalyzer"
- "CA2017"
@@ -9,6 +10,9 @@ helpviewer_keywords:
- "LoggerMessageDefineAnalyzer"
- "CA2017"
author: Youssef1313
+dev_langs:
+ - CSharp
+ - VB
---
# CA2017: Parameter count mismatch
@@ -36,6 +40,14 @@ Match the number of placeholders in the template format with the number of passe
Do not suppress a warning from this rule.
+## Example
+
+The following example shows methods that violate CA2017 and methods that satisfy the rule.
+
+:::code language="csharp" source="snippets/csharp/all-rules/ca2017.cs" id="snippet1":::
+
+:::code language="vb" source="snippets/vb/all-rules/ca2017-parameter-count-mismatch_1.vb":::
+
## See also
- [Reliability rules](reliability-warnings.md)
diff --git a/docs/fundamentals/code-analysis/quality-rules/snippets/csharp/all-rules/all-rules.csproj b/docs/fundamentals/code-analysis/quality-rules/snippets/csharp/all-rules/all-rules.csproj
index 48700336aa492..b286c3c5c450a 100644
--- a/docs/fundamentals/code-analysis/quality-rules/snippets/csharp/all-rules/all-rules.csproj
+++ b/docs/fundamentals/code-analysis/quality-rules/snippets/csharp/all-rules/all-rules.csproj
@@ -9,6 +9,8 @@
+
+
diff --git a/docs/fundamentals/code-analysis/quality-rules/snippets/csharp/all-rules/ca2017.cs b/docs/fundamentals/code-analysis/quality-rules/snippets/csharp/all-rules/ca2017.cs
new file mode 100644
index 0000000000000..da627345b1652
--- /dev/null
+++ b/docs/fundamentals/code-analysis/quality-rules/snippets/csharp/all-rules/ca2017.cs
@@ -0,0 +1,31 @@
+using Microsoft.Extensions.Logging;
+
+namespace ca2017
+{
+ //
+ public class LoggingExample
+ {
+ private readonly ILogger _logger;
+
+ public LoggingExample(ILogger 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);
+ }
+ }
+ //
+}
diff --git a/docs/fundamentals/code-analysis/quality-rules/snippets/vb/all-rules/all-rules.vbproj b/docs/fundamentals/code-analysis/quality-rules/snippets/vb/all-rules/all-rules.vbproj
index a5dec9dd3b254..a651c1e18355e 100644
--- a/docs/fundamentals/code-analysis/quality-rules/snippets/vb/all-rules/all-rules.vbproj
+++ b/docs/fundamentals/code-analysis/quality-rules/snippets/vb/all-rules/all-rules.vbproj
@@ -8,6 +8,8 @@
+
+
diff --git a/docs/fundamentals/code-analysis/quality-rules/snippets/vb/all-rules/ca2017-parameter-count-mismatch_1.vb b/docs/fundamentals/code-analysis/quality-rules/snippets/vb/all-rules/ca2017-parameter-count-mismatch_1.vb
new file mode 100644
index 0000000000000..f61ff6295d485
--- /dev/null
+++ b/docs/fundamentals/code-analysis/quality-rules/snippets/vb/all-rules/ca2017-parameter-count-mismatch_1.vb
@@ -0,0 +1,25 @@
+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