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