diff --git a/.globalconfig b/.globalconfig
index 095b150c301..8b80a737d17 100644
--- a/.globalconfig
+++ b/.globalconfig
@@ -1531,7 +1531,7 @@ dotnet_diagnostic.SA1641.severity = none
dotnet_diagnostic.SA1642.severity = none
# SA1643: Destructor summary documentation should begin with standard text
-dotnet_diagnostic.SA1643.severity = none
+dotnet_diagnostic.SA1643.severity = warning
# SA1648: inheritdoc should be used with inheriting class
dotnet_diagnostic.SA1648.severity = none
diff --git a/src/Microsoft.PowerShell.ConsoleHost/WindowsTaskbarJumpList/PropVariant.cs b/src/Microsoft.PowerShell.ConsoleHost/WindowsTaskbarJumpList/PropVariant.cs
index ac1e6dfd139..90148ca7e25 100644
--- a/src/Microsoft.PowerShell.ConsoleHost/WindowsTaskbarJumpList/PropVariant.cs
+++ b/src/Microsoft.PowerShell.ConsoleHost/WindowsTaskbarJumpList/PropVariant.cs
@@ -51,7 +51,7 @@ public void Dispose()
}
///
- /// Finalizer.
+ /// Finalizes an instance of the class.
///
~PropVariant()
{
diff --git a/src/Microsoft.PowerShell.ConsoleHost/host/msh/ConsoleHost.cs b/src/Microsoft.PowerShell.ConsoleHost/host/msh/ConsoleHost.cs
index 8b0ee08f5aa..b43f878cc36 100644
--- a/src/Microsoft.PowerShell.ConsoleHost/host/msh/ConsoleHost.cs
+++ b/src/Microsoft.PowerShell.ConsoleHost/host/msh/ConsoleHost.cs
@@ -1194,14 +1194,6 @@ private void UnhandledExceptionHandler(object sender, UnhandledExceptionEventArg
ui.WriteLine();
}
- ///
- /// Finalizes the instance.
- ///
- ~ConsoleHost()
- {
- Dispose(false);
- }
-
///
/// Disposes of this instance, per the IDisposable pattern.
///
@@ -1260,6 +1252,14 @@ private void Dispose(bool isDisposingNotFinalizing)
_isDisposed = true;
}
+ ///
+ /// Finalizes an instance of the class.
+ ///
+ ~ConsoleHost()
+ {
+ Dispose(false);
+ }
+
///
/// Indicates if the session should be terminated or not. Typically set by the break handler for Close, Logoff, and
/// Shutdown events. Note that the only valid transition for this property is from false to true: it is not legal to
diff --git a/src/System.Management.Automation/engine/EventManager.cs b/src/System.Management.Automation/engine/EventManager.cs
index 8f13eecd023..4afde8a9913 100644
--- a/src/System.Management.Automation/engine/EventManager.cs
+++ b/src/System.Management.Automation/engine/EventManager.cs
@@ -1544,6 +1544,14 @@ public void Dispose(bool disposing)
}
}
}
+
+ ///
+ /// Finalizes an instance of the class.
+ ///
+ ~PSLocalEventManager()
+ {
+ Dispose(false);
+ }
}
///
diff --git a/src/System.Management.Automation/engine/hostifaces/LocalPipeline.cs b/src/System.Management.Automation/engine/hostifaces/LocalPipeline.cs
index b79eb4d6fd5..ab430decb50 100644
--- a/src/System.Management.Automation/engine/hostifaces/LocalPipeline.cs
+++ b/src/System.Management.Automation/engine/hostifaces/LocalPipeline.cs
@@ -1251,7 +1251,7 @@ public void Dispose()
}
///
- /// Ensure we release the worker thread.
+ /// Finalizes an instance of the class.
///
~PipelineThread()
{
diff --git a/src/System.Management.Automation/engine/remoting/fanin/BaseTransportManager.cs b/src/System.Management.Automation/engine/remoting/fanin/BaseTransportManager.cs
index 0af0c6e75ae..5d12914074c 100644
--- a/src/System.Management.Automation/engine/remoting/fanin/BaseTransportManager.cs
+++ b/src/System.Management.Automation/engine/remoting/fanin/BaseTransportManager.cs
@@ -972,7 +972,7 @@ internal virtual void PrepareForConnect()
#region Clean up
///
- /// Finalizer.
+ /// Finalizes an instance of the class.
///
~BaseClientTransportManager()
{
diff --git a/src/System.Management.Automation/engine/remoting/fanin/WSManNativeAPI.cs b/src/System.Management.Automation/engine/remoting/fanin/WSManNativeAPI.cs
index efbb3ba7eed..8bcf2c09f2c 100644
--- a/src/System.Management.Automation/engine/remoting/fanin/WSManNativeAPI.cs
+++ b/src/System.Management.Automation/engine/remoting/fanin/WSManNativeAPI.cs
@@ -687,18 +687,6 @@ internal WSManData_ManToUn(string data)
Marshal.StructureToPtr(_internalData, _marshalledObject, false);
}
- ///
- /// Finalizer
- ///
- /// Note: Do not depend on the finalizer! This object should be
- /// properly disposed of when no longer needed via a direct call
- /// to Dispose().
- ///
- ~WSManData_ManToUn()
- {
- Dispose(false);
- }
-
///
/// Gets the type of data.
///
@@ -747,6 +735,14 @@ private void Dispose(bool isDisposing)
}
}
+ ///
+ /// Finalizes an instance of the class.
+ ///
+ ~WSManData_ManToUn()
+ {
+ Dispose(false);
+ }
+
///
/// Implicit IntPtr conversion.
///
diff --git a/src/System.Management.Automation/engine/remoting/fanin/WSManPluginFacade.cs b/src/System.Management.Automation/engine/remoting/fanin/WSManPluginFacade.cs
index 1c204773d70..e2679fcdf44 100644
--- a/src/System.Management.Automation/engine/remoting/fanin/WSManPluginFacade.cs
+++ b/src/System.Management.Automation/engine/remoting/fanin/WSManPluginFacade.cs
@@ -234,11 +234,7 @@ private void Dispose(bool disposing)
}
///
- /// Use C# destructor syntax for finalization code.
- /// This destructor will run only if the Dispose method
- /// does not get called.
- /// It gives your base class the opportunity to finalize.
- /// Do not provide destructors in types derived from this class.
+ /// Finalizes an instance of the class.
///
~WSManPluginEntryDelegates()
{
@@ -766,11 +762,7 @@ private void Dispose(bool disposing)
}
///
- /// Use C# destructor syntax for finalization code.
- /// This destructor will run only if the Dispose method
- /// does not get called.
- /// It gives your base class the opportunity to finalize.
- /// Do not provide destructors in types derived from this class.
+ /// Finalizes an instance of the class.
///
~WSManPluginManagedEntryInstanceWrapper()
{
diff --git a/src/System.Management.Automation/engine/remoting/fanin/WSManPluginShellSession.cs b/src/System.Management.Automation/engine/remoting/fanin/WSManPluginShellSession.cs
index 6df3d25bb86..51635922e0b 100644
--- a/src/System.Management.Automation/engine/remoting/fanin/WSManPluginShellSession.cs
+++ b/src/System.Management.Automation/engine/remoting/fanin/WSManPluginShellSession.cs
@@ -111,11 +111,7 @@ protected virtual void Dispose(bool disposing)
}
///
- /// Use C# destructor syntax for finalization code.
- /// This destructor will run only if the Dispose method
- /// does not get called.
- /// It gives your base class the opportunity to finalize.
- /// Do not provide destructors in types derived from this class.
+ /// Finalizes an instance of the class.
///
~WSManPluginServerSession()
{
diff --git a/src/System.Management.Automation/help/CabinetNativeApi.cs b/src/System.Management.Automation/help/CabinetNativeApi.cs
index 20ae932d5d0..76e8fe853a4 100644
--- a/src/System.Management.Automation/help/CabinetNativeApi.cs
+++ b/src/System.Management.Automation/help/CabinetNativeApi.cs
@@ -84,7 +84,7 @@ protected override void Dispose(bool disposing)
}
///
- /// Finalizer to ensure destruction of unmanaged resources.
+ /// Finalizes an instance of the class.
///
~CabinetExtractor()
{