glib-sharp System.Attribute Identifies a virtual class method on a GLib.Object subclass. When a virtual method tagged with this attribute is overridden in a subclass, the method is automatically hooked into the native object's vtable. For the most part, this is an internal implementation detail, but it can be used by binding code to manually identify GObject virtual methods that can be overridden by subclasses. The following code identifies the ForAll method as an overridable native method on the class. When a managed subclass of Container overrides the ForAll method, at type registration time, the OverrideForall method is invoked to connect up a delegate to the native GtkContainerClass::forall vtable slot. static void Forall_cb (IntPtr container, bool include_internals, IntPtr cb, IntPtr data) { Container obj = GLib.Object.GetObject (container, false) as Container; CallbackInvoker invoker = new CallbackInvoker (cb, data); obj.ForAll (include_internals, invoker); } static void OverrideForall (GLib.GType gtype) { if (ForallCallback == null) ForallCallback = new ForallDelegate (Forall_cb); gtksharp_container_override_forall (gtype, ForallCallback); } [GLib.DefaultSignalHandler (Type=typeof(Gtk.Container), ConnectionMethod="OverrideForall")] protected virtual void ForAll (bool include_internals, CallbackInvoker invoker) { gtksharp_container_base_forall (Handle, include_internals, invoker.Callback, invoker.Data); } Constructor Public Constructor. Property System.String The method to invoke to hook into the native object's vtable. a representing the method name to invoke. This method is invoked during type registration to hook up a callback delegate into the native object's vtable for virtual methods. Property System.Type The Type of the object which exposes the virtual method. a The type registration code reflects on this type for the to invoke.