Click or drag to resize

IExtension Interface

Extensions allow extended standard and custom functionality to be configured on a object within the application, generally on mappers. Extension objects implement this interface and respond to interesting events by manipulating the object firing the event or otherwise acting based on the object. Extensions receive standard events as defined in ExtensionEvents and can receive custom events corresponding to the range of custom events defined in ExtensionEvents.

The three most common types of extension, from most to least common are:

Namespace:  NetQuarry
Assembly:  EAP.Core (in EAP.Core.dll) Version: (
public interface IExtension

The IExtension type exposes the following members.

Public propertyOwner
The object (e.g. IMapper, IAppContext) owning this extension.
Public propertyProperties
The Properties associated with this extension.
Public propertyTextItems
The TextItems collection of localized text associated with this extension.
Public methodInfo
Returns an object for the ExtInfo item requested.
Public methodOnEvent
This method is called to fire an ExtensionEvents event. The extension responds to this event.
Public methodOnUnload
Notifies the extension that it should perform any cleanup necessary just prior to being unloaded.

Extensions are a key concept of the NetQuarry platform. Extensions are libraries (assemblies) that receive events from the running application objects. For example, when a record in a page is changed, the IMapper representing that data fires update events (notifications) through all of the extensions configured (via meta-data) on that object.

This is a powerful programming pattern that is extremely simple for application developers, even those unfamiliar with Microsoft .NET to quickly grasp and master.

To create an extension, the developer runs a wizard from the Studio that allows them to specify the name, location, language (C#, VB.NET), and which objects they want to attach the extension. Extensions must implement a known interface (IExtension) or derive from a provided base class.

See Also