/// <summary> /// 자원을 해제 합니다. /// </summary> /// <param name="releaseAll">관리자원 포함 여부</param> protected void Dispose(bool releaseAll) { if (_wasCallDispose == true) { return; } else { _wasCallDispose = true; } //관리자원 해제 if (releaseAll == true) { ReleaseManagementResource(); } //비관리자원 해제 //TODO //마무리 _isValid = false; _assemblyRefCounter.DecrementRefCounter(); _assemblyRefCounter -= _methodInvokerCounter; _assemblyRefCounter = null; _methodInvokerCounter = null; //생성된 MethodInvoker들에게 통지 및 자원해제 if (EventInvalidProxy != null) { EventInvalidProxy(this, null); EventInvalidProxy = null; } }
/// <summary> /// 전달 값에 따른 리소스를 해제 합니다. /// </summary> /// <param name="releaseAll">관리형 리소스를 포함 합니다.</param> protected void Dispose(bool releaseAll) { if (_wasCallDispose == true) { return; } else { _wasCallDispose = true; } //관리형 리소스를 해제 한다. if (releaseAll == true) { ReleaseManagementResource(); } //비관리형 리소스 해제 //TODO //마무리 _isValid = false; _instanceRefCounter.DecrementRefCounter(); _instanceRefCounter = null; //비유효화 통지 if (EventInvalidInvoker != null) { EventInvalidInvoker(this, null); } }