I've defined a class, but now I want to Define a Finalizer
(destructor)...
How do I call the Base Finalizer???, void Finalize() is a protected
override method and Type.GetType Does not work.
Hoe do I call it?
private void DefineFinalizer (TypeBuilder typeBuilder)
{
MethodBuilder finalizerMethod Builder = typeBuilder.Def ineMethod(
"Finalize",
MethodAttribute s.Family | MethodAttribute s.Virtual |
MethodAttribute s.HideBySig,
CallingConventi ons.Standard,
TYPE_VOID,
Type.EmptyTypes );
ILGenerator generator = finalizerMethod Builder.GetILGe nerator();
generator.Begin ExceptionBlock( );
generator.EmitW riteLine("Final ize was called");
generator.Begin FinallyBlock();
// Should call base Finalizer here...
generator.EndEx ceptionBlock();
generator.Emit( OpCodes.Ret);
}
Please I have to know how to call the base Finalize... otherwise, I
believe so, Lutz does not treat this method as destructor...
Regards,
Eyal Safran.