diff --git a/eng/PatchConfig.props b/eng/PatchConfig.props
index 36217a524ca4..dc15b2cbe0b6 100644
--- a/eng/PatchConfig.props
+++ b/eng/PatchConfig.props
@@ -78,6 +78,7 @@ Later on, this will be checked using this condition:
+ Microsoft.AspNetCore.DataProtection.EntityFrameworkCore;
diff --git a/src/DataProtection/EntityFrameworkCore/src/EntityFrameworkCoreXmlRepository.cs b/src/DataProtection/EntityFrameworkCore/src/EntityFrameworkCoreXmlRepository.cs
index 62250cf3efb7..0c9ff11639fc 100644
--- a/src/DataProtection/EntityFrameworkCore/src/EntityFrameworkCoreXmlRepository.cs
+++ b/src/DataProtection/EntityFrameworkCore/src/EntityFrameworkCoreXmlRepository.cs
@@ -42,8 +42,10 @@ public virtual IReadOnlyCollection GetAllElements()
{
using (var scope = _services.CreateScope())
{
- var context = scope.ServiceProvider.GetRequiredService();
- return context.DataProtectionKeys.AsNoTracking().Select(key => TryParseKeyXml(key.Xml)).ToList().AsReadOnly();
+ var context = scope.ServiceProvider.GetRequiredService();
+ // Put logger in a local such that `this` isn't captured.
+ var logger = _logger;
+ return context.DataProtectionKeys.AsNoTracking().Select(key => TryParseKeyXml(key.Xml, logger)).ToList().AsReadOnly();
}
}
@@ -65,7 +67,7 @@ public void StoreElement(XElement element, string friendlyName)
}
}
- private XElement TryParseKeyXml(string xml)
+ private static XElement TryParseKeyXml(string xml, ILogger logger)
{
try
{
@@ -73,7 +75,7 @@ private XElement TryParseKeyXml(string xml)
}
catch (Exception e)
{
- _logger?.LogExceptionWhileParsingKeyXml(xml, e);
+ logger?.LogExceptionWhileParsingKeyXml(xml, e);
return null;
}
}