diff --git a/src/BootstrapBlazor/Components/BaseComponents/BootstrapModuleComponentBase.cs b/src/BootstrapBlazor/Components/BaseComponents/BootstrapModuleComponentBase.cs
index fc5b4a2c8f4..e949eb39f62 100644
--- a/src/BootstrapBlazor/Components/BaseComponents/BootstrapModuleComponentBase.cs
+++ b/src/BootstrapBlazor/Components/BaseComponents/BootstrapModuleComponentBase.cs
@@ -8,8 +8,8 @@
namespace BootstrapBlazor.Components;
///
-/// Bootstrap Blazor JavaScript 隔离基类
-/// Bootstrap blazor JavaScript isolation base class
+/// BootstrapBlazor JavaScript 隔离基类
+/// BootstrapBlazor JavaScript isolation base class
///
public abstract class BootstrapModuleComponentBase : IdComponentBase, IAsyncDisposable
{
@@ -198,7 +198,7 @@ protected async Task InvokeVoidAsync(string identifier, CancellationToken cancel
}
///
- /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously
+ /// 异步释放资源
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously
///
///
diff --git a/src/BootstrapBlazor/Components/BaseComponents/DynamicElement.cs b/src/BootstrapBlazor/Components/BaseComponents/DynamicElement.cs
index 385c6581832..9418053363c 100644
--- a/src/BootstrapBlazor/Components/BaseComponents/DynamicElement.cs
+++ b/src/BootstrapBlazor/Components/BaseComponents/DynamicElement.cs
@@ -12,7 +12,7 @@ namespace BootstrapBlazor.Components;
/// 动态元素组件
/// Dynamic element component
///
-public class DynamicElement : BootstrapComponentBase
+public class DynamicElement : BootstrapComponentBase, IAsyncDisposable
{
///
/// 获得/设置 TagName 属性 默认为 div
@@ -176,4 +176,29 @@ private async Task OnTriggerContextMenu(MouseEventArgs e)
await OnContextMenu(e);
}
}
+
+ ///
+ /// 异步释放资源
+ /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously
+ ///
+ ///
+ protected virtual async ValueTask DisposeAsync(bool disposing)
+ {
+ if (disposing)
+ {
+ OnClick = null;
+ OnDoubleClick = null;
+ OnContextMenu = null;
+ ChildContent = null;
+ }
+ }
+
+ ///
+ ///
+ ///
+ public async ValueTask DisposeAsync()
+ {
+ await DisposeAsync(true);
+ GC.SuppressFinalize(this);
+ }
}