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 finalizerMethodBuilder = typeBuilder.DefineMethod(
"Finalize",
MethodAttributes.Family | MethodAttributes.Virtual |
MethodAttributes.HideBySig,
CallingConventions.Standard,
TYPE_VOID,
Type.EmptyTypes);
ILGenerator generator = finalizerMethodBuilder.GetILGenerator();
generator.BeginExceptionBlock();
generator.EmitWriteLine("Finalize was called");
generator.BeginFinallyBlock();
// Should call base Finalizer here...
generator.EndExceptionBlock();
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.