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; } }