Prev: HELP! Design Review & Risk Management topics (in ASP projects) required
Next: How can pass URL for website as imgeurl
From: Big George on 6 Sep 2010 15:14 Hello, I don't get it how to use Dispose in ASP.NET 1.1. On MyClass, I put my own Dispose procedure. I instance MyClass as oMyClass, I use it and after I finish, I call oMyClass.Dispose, looking for releasing memory. Repeater1 stores and shows properties from oMyClass. But after doing oMyClass.Dispose, Repeater1 shows oMyClass.properties with no value - Am I doing wrong the dispose function? - If leave Dispose method on MyClass and don't call it, will .NET still dispose all variables or not? 'On my aspx code behind I put: '''' Code behind myArray = New ArrayList Do While dataRead.Read oMyClass = New MyClass() myArray.Add(oMyClass) oMyClass.Dispose() Loop dataRead.Dispose Repeater1.DataSource = myArray Repeater1.DataBind() 'Repetear1 shows properties from MyClass '''' Code behind '''' MyClass code: Public Class MyClass Implements IDisposable Private mproperty1 as string Private mproperty2 as string Private disposedValue As Boolean = False Protected Overridable Sub Dispose(ByVal disposing As Boolean) If Not Me.disposedValue Then If disposing Then mproperty1="" mproperty2="" End If End If Me.disposedValue = True End Sub Public Sub Dispose() Implements IDisposable.Dispose Dispose(True) GC.SuppressFinalize(Me) End Sub Public Sub ProcedureToFillMyProperties .... End Sub Public ReadOnly Property Property1() As String Get Return mproperty1 End Get End Property Public ReadOnly Property Property2() As String Get Return mproperty2 End Get End Property End Class
From: Cubaman on 7 Sep 2010 03:33
On Sep 6, 9:14 pm, Big George <jbet...(a)gmail.com> wrote: > Hello, > I don't get it how to use Dispose in ASP.NET 1.1. > > On MyClass, I put my own Dispose procedure. I instance MyClass as > oMyClass, I use it and after I finish, I call oMyClass.Dispose, > looking for releasing memory. > > Repeater1 stores and shows properties from oMyClass. But after doing > oMyClass.Dispose, Repeater1 shows oMyClass.properties with no value > > - Am I doing wrong the dispose function? > - If leave Dispose method on MyClass and don't call it, will .NET > still dispose all variables or not? > > 'On my aspx code behind I put: > > '''' Code behind > myArray = New ArrayList > > Do While dataRead.Read > oMyClass = New MyClass() > myArray.Add(oMyClass) > oMyClass.Dispose() > Loop > dataRead.Dispose > > Repeater1.DataSource = myArray > Repeater1.DataBind() > 'Repetear1 shows properties from MyClass > '''' Code behind > > '''' MyClass code: > Public Class MyClass > Implements IDisposable > Private mproperty1 as string > Private mproperty2 as string > > Private disposedValue As Boolean = False > > Protected Overridable Sub Dispose(ByVal disposing As Boolean) > If Not Me.disposedValue Then > If disposing Then > mproperty1="" > mproperty2="" > End If > > End If > Me.disposedValue = True > End Sub > > Public Sub Dispose() Implements IDisposable.Dispose > > Dispose(True) > GC.SuppressFinalize(Me) > End Sub > > Public Sub ProcedureToFillMyProperties > .... > End Sub > > Public ReadOnly Property Property1() As String > Get > Return mproperty1 > End Get > End Property > > Public ReadOnly Property Property2() As String > Get > Return mproperty2 > End Get > End Property > > End Class Hello: Dispose is used in classes that holds unmanaged or high resource consuming members. Like DDBB connections, graphics objects, etc. If your class only holds a couple of strings, it's unnecessary to make it IDisposable. If you want, use .Net Reflector and take a look at how it's implemented in SqlConnection class, for example. http://www.red-gate.com/products/reflector/ Best regards. |