private void ReleaseObjectRef()
 {
     _ObjectRefCounter--;
     if (_ObjectRefCounter == 0)
     {
         _ObjectRef.Dispose();
         _ObjectRef = null;
     }
 }
예제 #2
0
 protected void DisposeDotNetObjectRef <T>(DotNetObjectRef <T> value) where T : class
 {
     if (value != null)
     {
         lock (CreateDotNetObjectRefSyncObj)
         {
             JSRuntime.SetCurrentJSRuntime(Js);
             value.Dispose();
         }
     }
 }
예제 #3
0
        public void NotifiesAssociatedJsRuntimeOfDisposal()
        {
            // Arrange
            var objRef    = new DotNetObjectRef(new object());
            var jsRuntime = new TestJsRuntime();

            objRef.EnsureAttachedToJsRuntime(jsRuntime);

            // Act
            objRef.Dispose();

            // Assert
            Assert.Equal(new[] { objRef }, jsRuntime.UntrackedRefs);
        }
예제 #4
0
        protected override async ValueTask DisposeAsync(bool disposing)
        {
            if (disposing && Rendered)
            {
                await JSModule.SafeDestroy(ParentChart.ElementRef, ParentChart.ElementId);

                await JSModule.SafeDisposeAsync();

                if (DotNetObjectRef != null)
                {
                    DotNetObjectRef.Dispose();
                    DotNetObjectRef = null;
                }
            }

            await base.DisposeAsync(disposing);
        }
 public void Dispose()
 {
     thisRef.Dispose();
 }
예제 #6
0
 public void Dispose()
 {
     ambientLightSensorRef.Dispose();
 }