Here is code from MSDN-Library April 2003 which I tried to implement to my class but there was some error that I don't know how to solve it. In Privete Overloads Sub Dispose(ByVal disposing Boolean), the code call component.Dispo se() method but the VS said that 'System.Compone ntModel.Compone nt.Protected Overrridable Sub Dispose(disposi ng As Boolean)' is not accessible in this context because it is 'Protected'. I don't know this code is from .NET Framework 1.0 and not yet update for 1.1 or not. If anyone know how can I correct this error, please let me know.
Thank you,
Teeravee Sirinapasawasde e
Imports System
Imports System.Componen tModel
Public Class DisposeExample
Public Class MyResource
Implements IDisposable
Private handle As IntPtr
Private component As component
Private disposed As Boolean = False
Public Sub New(ByVal handle As IntPtr)
Me.handle = handle
End Sub
Public Overloads Sub Dispose() Implements IDisposable.Dis pose
Dispose(True)
GC.SuppressFina lize(Me)
End Sub
Private Overloads Sub Dispose(ByVal disposing As Boolean)
If Not Me.disposed Then
If disposing Then
component.Dispo se() <-- There was error here!
End If
CloseHandle(han dle)
handle = IntPtr.Zero
End If
disposed = True
End Sub
<System.Runtime .InteropService s.DllImport("Ke rnel32")> _
Private Shared Function CloseHandle(ByV al handle As IntPtr) As [Boolean]
End Function
Protected Overrides Sub Finalize()
Dispose(False)
MyBase.Finalize ()
End Sub
End Class
End Class
Thank you,
Teeravee Sirinapasawasde e
Imports System
Imports System.Componen tModel
Public Class DisposeExample
Public Class MyResource
Implements IDisposable
Private handle As IntPtr
Private component As component
Private disposed As Boolean = False
Public Sub New(ByVal handle As IntPtr)
Me.handle = handle
End Sub
Public Overloads Sub Dispose() Implements IDisposable.Dis pose
Dispose(True)
GC.SuppressFina lize(Me)
End Sub
Private Overloads Sub Dispose(ByVal disposing As Boolean)
If Not Me.disposed Then
If disposing Then
component.Dispo se() <-- There was error here!
End If
CloseHandle(han dle)
handle = IntPtr.Zero
End If
disposed = True
End Sub
<System.Runtime .InteropService s.DllImport("Ke rnel32")> _
Private Shared Function CloseHandle(ByV al handle As IntPtr) As [Boolean]
End Function
Protected Overrides Sub Finalize()
Dispose(False)
MyBase.Finalize ()
End Sub
End Class
End Class