Mono.Addins
An add-in localizer.
Add-in localizers which want to provide support for localization of plural forms
can additionally implement .
Gets a localized message.
The localized message.
The message identifier.
A collection of extension nodes
Base class for add-in description collections.
Base class for add-in description collections.
Initializes a new instance of the class.
Add an object.
The object.
Adds a collection of objects.
The objects to add.
Insert an object.
Insertion index.
The object.
Removes an object.
Object to remove.
Checks if an object is present in the collection.
Objecect to check.
A collection of NodeElement objects
Gets the at the specified index
Index
Initializes a new instance of the class.
Gets the at the specified index.
The index.
Gets the with the specified identifier.
Identifier.
Declares an extension point.
Initializes a new instance
Initializes a new instance
Extension path that identifies the extension point
Initializes a new instance
Extension path that identifies the extension point
Type of the extension node to be created for extensions
Initializes a new instance
Extension path that identifies the extension point
Element name to be used when defining an extension in an XML manifest.
Type of the extension node to be created for extensions
Extension path that identifies the extension point
Long description of the extension point.
Type of the extension node to be created for extensions
Expected extension object type (when nodes are of type TypeExtensionNode)
Element name to be used when defining an extension in an XML manifest. The default name is "Type".
Display name of the extension point.
Type of the custom attribute to be used to specify metadata for the extension point
Addin URL attribute.
Initializes the attribute
Url of the add-in
Url of the add-in
Declares allowed children of an extension node type.
This attribute allows declaring the type of children that an extension node can have.
Initializes a new instance
Name of the allowed child extension node.
Initializes a new instance
Type of the allowed child extension node.
Initializes a new instance
Type of the allowed child extension node.
Name of the allowed child extension node.
Name of the allowed child extension node.
Type of the allowed child extension node.
Provides access to add-in and extension model management operations.
Initializes the add-in engine.
The add-in engine needs to be initialized before doing any add-in operation.
When initialized with this method, it will look for add-ins in the global add-in registry.
Initializes the add-in engine.
Location of the add-in registry.
The add-in engine needs to be initialized before doing any add-in operation.
Configuration information about the add-in registry will be stored in the
provided location. The add-in engine will look for add-ins in an 'addins'
subdirectory of the provided directory.
When specifying a path, it is possible to use a special folder name as root.
For example: [Personal]/.config/MyApp. In this case, [Personal] will be replaced
by the location of the Environment.SpecialFolder.Personal folder. Any value
of the Environment.SpecialFolder enumeration can be used (always between square
brackets)
Initializes the add-in engine.
Location of the add-in registry.
Add-ins directory. If the path is relative, it is considered to be relative
to the configDir directory.
The add-in engine needs to be initialized before doing any add-in operation.
Configuration information about the add-in registry will be stored in the
provided location. The add-in engine will look for add-ins in the provided
'addinsDir' directory.
When specifying a path, it is possible to use a special folder name as root.
For example: [Personal]/.config/MyApp. In this case, [Personal] will be replaced
by the location of the Environment.SpecialFolder.Personal folder. Any value
of the Environment.SpecialFolder enumeration can be used (always between square
brackets)
Initializes the add-in engine.
Location of the add-in registry.
Add-ins directory. If the path is relative, it is considered to be relative
to the configDir directory.
Location of the add-in database. If the path is relative, it is considered to be relative
to the configDir directory.
The add-in engine needs to be initialized before doing any add-in operation.
Configuration information about the add-in registry will be stored in the
provided location. The add-in engine will look for add-ins in the provided
'addinsDir' directory. Cached information about add-ins will be stored in
the 'databaseDir' directory.
When specifying a path, it is possible to use a special folder name as root.
For example: [Personal]/.config/MyApp. In this case, [Personal] will be replaced
by the location of the Environment.SpecialFolder.Personal folder. Any value
of the Environment.SpecialFolder enumeration can be used (always between square
brackets)
Finalizes an add-in engine.
Sets the default localizer to be used for this add-in engine
The add-in localizer
Checks if the provided add-ins are installed, and requests the installation of those
which aren't.
Message to show to the user when new add-ins have to be installed.
List of IDs of the add-ins to be checked.
This method checks if the specified add-ins are installed.
If some of the add-ins are not installed, it will use
the installer assigned to the DefaultAddinInstaller property
to install them. If the installation fails, or if DefaultAddinInstaller
is not set, an exception will be thrown.
Checks if an add-in has been loaded.
Full identifier of the add-in.
True if the add-in is loaded.
Forces the loading of an add-in.
Status monitor to keep track of the loading process.
Full identifier of the add-in to load.
This method loads all assemblies that belong to an add-in in memory.
All add-ins on which the specified add-in depends will also be loaded.
Notice that in general add-ins don't need to be explicitely loaded using
this method, since the add-in engine will load them on demand.
Creates a new extension context.
The new extension context.
Extension contexts can be used to query the extension model using particular condition values.
Returns the extension node in a path
Location of the node.
The node, or null if not found.
Returns the extension node in a path
Location of the node.
The node, or null if not found.
Gets extension nodes registered in a path.
An extension path.>
All nodes registered in the provided path.
Gets extension nodes registered in a path.
An extension path.
Expected node type.
A list of nodes
This method returns all nodes registered under the provided path.
It will throw a InvalidOperationException if the type of one of
the registered nodes is not assignable to the provided type.
Gets extension nodes registered in a path.
An extension path.
A list of nodes
This method returns all nodes registered under the provided path.
It will throw a InvalidOperationException if the type of one of
the registered nodes is not assignable to the provided type.
Gets extension nodes for a type extension point
Type defining the extension point
A list of nodes
This method returns all extension nodes bound to the provided type.
Gets extension nodes for a type extension point
Type defining the extension point
Expected extension node type
A list of nodes
This method returns all nodes registered for the provided type.
It will throw a InvalidOperationException if the type of one of
the registered nodes is not assignable to the provided node type.
Gets extension nodes for a type extension point
Type defining the extension point
A list of nodes
This method returns all nodes registered for the provided type.
It will throw a InvalidOperationException if the type of one of
the registered nodes is not assignable to the specified node type argument.
Gets extension objects registered for a type extension point.
Type defining the extension point
A list of objects
Gets extension objects registered for a type extension point.
A list of objects
The type argument of this generic method is the type that defines
the extension point.
Gets extension objects registered for a type extension point.
Type defining the extension point
When set to True, it will return instances created in previous calls.
A list of extension objects.
Gets extension objects registered for a type extension point.
When set to True, it will return instances created in previous calls.
A list of extension objects.
The type argument of this generic method is the type that defines
the extension point.
Gets extension objects registered in a path
An extension path.
An array of objects registered in the path.
This method can only be used if all nodes in the provided extension path
are of type Mono.Addins.TypeExtensionNode. The returned array is composed
by all objects created by calling the TypeExtensionNode.CreateInstance()
method for each node.
Gets extension objects registered in a path.
An extension path.
When set to True, it will return instances created in previous calls.
An array of objects registered in the path.
This method can only be used if all nodes in the provided extension path
are of type Mono.Addins.TypeExtensionNode. The returned array is composed
by all objects created by calling the TypeExtensionNode.CreateInstance()
method for each node (or TypeExtensionNode.GetInstance() if
reuseCachedInstance is set to true)
Gets extension objects registered in a path.
An extension path.
Type of the return array elements.
An array of objects registered in the path.
This method can only be used if all nodes in the provided extension path
are of type Mono.Addins.TypeExtensionNode. The returned array is composed
by all objects created by calling the TypeExtensionNode.CreateInstance()
method for each node.
An InvalidOperationException exception is thrown if one of the found
objects is not a subclass of the provided type.
Gets extension objects registered in a path.
An extension path.
An array of objects registered in the path.
This method can only be used if all nodes in the provided extension path
are of type Mono.Addins.TypeExtensionNode. The returned array is composed
by all objects created by calling the TypeExtensionNode.CreateInstance()
method for each node.
An InvalidOperationException exception is thrown if one of the found
objects is not a subclass of the provided type.
Gets extension objects registered in a path.
An extension path.
Type of the return array elements.
When set to True, it will return instances created in previous calls.
An array of objects registered in the path.
This method can only be used if all nodes in the provided extension path
are of type Mono.Addins.TypeExtensionNode. The returned array is composed
by all objects created by calling the TypeExtensionNode.CreateInstance()
method for each node (or TypeExtensionNode.GetInstance() if
reuseCachedInstance is set to true).
An InvalidOperationException exception is thrown if one of the found
objects is not a subclass of the provided type.
Gets extension objects registered in a path.
An extension path.
When set to True, it will return instances created in previous calls.
An array of objects registered in the path.
This method can only be used if all nodes in the provided extension path
are of type Mono.Addins.TypeExtensionNode. The returned array is composed
by all objects created by calling the TypeExtensionNode.CreateInstance()
method for each node (or TypeExtensionNode.GetInstance() if
reuseCachedInstance is set to true).
An InvalidOperationException exception is thrown if one of the found
objects is not a subclass of the provided type.
Register a listener of extension node changes.
Path of the node.
A handler method.
Hosts can call this method to be subscribed to an extension change
event for a specific path. The event will be fired once for every
individual node change. The event arguments include the change type
(Add or Remove) and the extension node added or removed.
NOTE: The handler will be called for all nodes existing in the path at the moment of registration.
Unregister a listener of extension node changes.
Path of the node.
A handler method.
This method unregisters a delegate from the node change event of a path.
Register a listener of extension node changes.
Type defining the extension point
A handler method.
Hosts can call this method to be subscribed to an extension change
event for a specific type extension point. The event will be fired once for every
individual node change. The event arguments include the change type
(Add or Remove) and the extension node added or removed.
NOTE: The handler will be called for all nodes existing in the path at the moment of registration.
Unregister a listener of extension node changes.
Type defining the extension point
A handler method.
Gets whether the add-in engine has been initialized.
Gets the default add-in installer
The default installer is used by the CheckInstalled method to request
the installation of missing add-ins.
Gets the default localizer for this add-in engine
Gets the localizer for the add-in that is invoking this property
Gets a reference to the RuntimeAddin object for the add-in that is invoking this property
Gets the default add-in engine
Gets the add-in registry bound to the default add-in engine
Extension change event.
This event is fired when any extension point in the add-in system changes.
The event args object provides the path of the changed extension, although
it does not provide information about what changed. Hosts subscribing to
this event should get the new list of nodes using a query method such as
AddinManager.GetExtensionNodes() and then update whatever needs to be updated.
Add-in loading error event.
This event is fired when there is an error when loading the extension
of an add-in, or any other kind of error that may happen when querying extension points.
Add-in loaded event.
Fired after loading an add-in in memory.
Add-in unload event.
Fired when an add-in is unloaded from memory. It may happen an add-in is disabled or uninstalled.
An extension node definition.
Base class for add-in description definitions.
Gets the parent object.
The parent object.
Gets the parent add-in description.
The parent add-in description.
An extension node element.
A raw representation of an extension node. Contains the basic information
needed to create ExtensionNode instances.
Gets element attributes.
Name of the attribute
The value of the attribute
Name of the node element.
Gets all attributes defined in the element.
Gets child nodes of this node
Initializes a new instance of the class.
Node name.
Gets the type of the node.
The node type.
This method only works when the add-in description to which the node belongs has been
loaded from an add-in registry.
Gets the extension path under which this node is registered
The parent path.
For example, if the id of the node is 'ThisNode', and the node is a child of another node with id 'ParentNode', and
that parent node is defined in an extension with the path '/Core/MainExtension', then the parent path is 'Core/MainExtension/ParentNode'.
Gets the value of an attribute.
The value of the attribute, or an empty string if the attribute is not defined.
Name of the attribute.
Sets the value of an attribute.
Name of the attribute
The value.
Removes an attribute.
Name of the attribute to remove.
Gets or sets the name of the node.
The name of the node.
Gets or sets the identifier of the node.
The identifier.
Gets or sets the identifier of the node after which this node has to be inserted
The identifier of the reference node
Gets or sets the identifier of the node before which this node has to be inserted
The identifier of the reference node
Gets a value indicating whether this node is a condition.
true if this node is a condition; otherwise, false.
Gets the attributes of the node.
The attributes.
Gets the child nodes.
The child nodes.
An extension node type definition.
An extension node set definition.
Node sets allow grouping a set of extension node declarations and give an identifier to that group
(the node set). Once a node set is declared, it can be referenced from several extension points
which use the same extension node structure. Extension node sets also allow declaring recursive
extension nodes, that is, extension nodes with a tree structure.
Copies data from another node set
Node set from which to copy
Initializes a new instance of the class.
Gets all the allowed node types.
The allowed node types.
Gets all allowed node types, including those defined in included node sets.
This method only works for descriptions loaded from a registry.
Gets or sets the identifier of the node set.
The identifier.
Gets the node types allowed in this node set.
The node types.
Gets a list of other node sets included in this node set.
The node sets.
Initializes a new instance of the class.
Copies data from another node set
Type that implements the extension node.
The full name of the type.
Element name to be used when defining an extension in an XML manifest. The default name is "Type".
The name of the node.
Type of the object that the extension creates (only valid for TypeNodeExtension).
Name of the custom attribute that can be used to declare nodes of this type
Long description of the node type
Attributes supported by the extension node type.
An add-in description
This class represent an add-in manifest. It has properties for getting
all information, and methods for loading and saving files.
Adds an extension point.
The extension point.
Path that identifies the new extension point.
Saves the add-in description.
File name where to save this instance
Saves the add-in description to the specified file and sets the FileName property.
Saves the add-in description.
It is thrown if FileName is not set
The description is saved to the file specified in the FileName property.
Generates an XML representation of the add-in description
An XML manifest.
Load an add-in description from a file
The file.
Load an add-in description from a stream
The stream
The path to be used to resolve relative file paths.
Load an add-in description from a text reader
The text reader
The path to be used to resolve relative file paths.
Verify this instance.
This method checks all the definitions in the description and returns a list of errors.
If the returned list is empty, it means that the description is valid.
Gets or sets the path to the main addin file.
The addin file.
The add-in file can be either the main assembly of an add-in or an xml manifest.
Gets the addin identifier.
The addin identifier.
Gets or sets the local identifier.
The local identifier.
Gets or sets the namespace.
The namespace.
Gets or sets the display name of the add-in.
The name.
Gets or sets the version.
The version.
Gets or sets the version of the add-in with which this add-in is backwards compatible.
The compat version.
Gets or sets the author.
The author.
Gets or sets the Url where more information about the add-in can be found.
The URL.
Gets or sets the copyright.
The copyright.
Gets or sets the description of the add-in.
The description.
Gets or sets the category of the add-in.
The category.
Gets the base path for locating external files relative to the add-in.
The base path.
Gets or sets a value indicating whether this instance is an add-in root.
true if this instance is an add-in root; otherwise, false.
Gets or sets a value indicating whether this add-in is enabled by default.
true if enabled by default; otherwise, false.
Gets or sets the add-in flags.
The flags.
Gets a value indicating whether this add-in can be disabled.
true if this add-in can be disabled; otherwise, false.
Gets a value indicating whether this add-in can be uninstalled.
true if this instance can be uninstalled; otherwise, false.
Gets a value indicating whether this add-in is hidden.
true if this add-in is hidden; otherwise, false.
Gets all external files
All files.
External files are data files and assemblies explicitly referenced in the Runtime section of the add-in manifest.
Gets all paths to be ignored by the add-in scanner.
All paths to be ignored.
Gets the main module.
The main module.
Gets the optional modules.
The optional modules.
Optional modules can be used to declare extensions which will be registered only if some specified
add-in dependencies can be satisfied. Dependencies specified in optional modules are 'soft dependencies',
which means that they don't need to be satisfied in order to load the add-in.
Gets all modules (including the main module and all optional modules)
All modules.
Gets the extension node sets.
The extension node sets.
Gets the extension points.
The extension points.
Gets the condition types.
The condition types.
Gets or sets the add-in localizer.
The description of the add-in localizer for this add-in.
Custom properties specified in the add-in header
Gets or sets file where this description is stored
The file path.
Addin flags attribute.
Initializes the attribute
Add-in flags
Add-in flags
Delegate to be used in add-in engine events
Provides information about an add-in engine event.
Initializes a new instance of the class.
Add-in identifier.
Identifier of the add-in that generated the event.
Attribute of a NodeElement.
Name of the attribute.
Value of the attribute.
Allows finding assemblies in the file system
Locates an assembly
The full path to the assembly, or null if not found
Full name of the assembly
An add-in property.
Name of the property
Locale of the property. It is null if the property is not localized.
Value of the property.
A localizer factory.
Creates a localizer for an add-in.
The localizer.
The add-in for which to create the localizer.
Localizer parameters.
Definition of an add-in dependency.
Gets the display name of the dependency.
The name.
A collection of node sets.
Initializes a new instance of the class.
Gets the at the specified index.
The index.
Gets the with the specified id.
Identifier.
An add-in engine.
This class allows hosting several independent add-in engines in a single application domain.
In general, applications use the AddinManager class to query and manage extensions. This class is static,
so the API is easily accessible. However, some kind applications may need to use several isolated
add-in engines, and in this case the AddinManager class can't be used, because it is bound to a single
add-in engine. Those applications can instead create several instances of the AddinEngine class. Each
add-in engine can be independently initialized with different add-in registries and extension models.
An extension context.
Extension contexts can be used to query the extension tree
using particular condition values. Extension points which
declare the availability of a condition type can only be
queryed using an extension context which provides an
evaluator for that condition.
Registers a new condition in the extension context.
Identifier of the condition.
Condition evaluator.
The registered condition will be particular to this extension context.
Any event that might be fired as a result of changes in the condition will
only be fired in this context.
Registers a new condition in the extension context.
Identifier of the condition.
Type of the condition evaluator. Must be a subclass of Mono.Addins.ConditionType.
The registered condition will be particular to this extension context. Any event
that might be fired as a result of changes in the condition will only be fired in this context.
Returns the extension node in a path
Location of the node.
The node, or null if not found.
Returns the extension node in a path
Location of the node.
The node, or null if not found.
Gets extension nodes registered in a path.
An extension path.>
All nodes registered in the provided path.
Gets extension nodes registered in a path.
An extension path.
A list of nodes
This method returns all nodes registered under the provided path.
It will throw a InvalidOperationException if the type of one of
the registered nodes is not assignable to the provided type.
Gets extension nodes for a type extension point
Type defining the extension point
A list of nodes
This method returns all extension nodes bound to the provided type.
Gets extension nodes for a type extension point
Type defining the extension point
Expected extension node type
A list of nodes
This method returns all nodes registered for the provided type.
It will throw a InvalidOperationException if the type of one of
the registered nodes is not assignable to the provided node type.
Gets extension nodes for a type extension point
Type defining the extension point
A list of nodes
This method returns all nodes registered for the provided type.
It will throw a InvalidOperationException if the type of one of
the registered nodes is not assignable to the specified node type argument.
Gets extension nodes registered in a path.
An extension path.
Expected node type.
A list of nodes
This method returns all nodes registered under the provided path.
It will throw a InvalidOperationException if the type of one of
the registered nodes is not assignable to the provided type.
Gets extension objects registered for a type extension point.
Type defining the extension point
A list of objects
Gets extension objects registered for a type extension point.
A list of objects
The type argument of this generic method is the type that defines
the extension point.
Gets extension objects registered for a type extension point.
Type defining the extension point
When set to True, it will return instances created in previous calls.
A list of extension objects.
Gets extension objects registered for a type extension point.
When set to True, it will return instances created in previous calls.
A list of extension objects.
The type argument of this generic method is the type that defines
the extension point.
Gets extension objects registered in a path
An extension path.
An array of objects registered in the path.
This method can only be used if all nodes in the provided extension path
are of type Mono.Addins.TypeExtensionNode. The returned array is composed
by all objects created by calling the TypeExtensionNode.CreateInstance()
method for each node.
Gets extension objects registered in a path.
An extension path.
When set to True, it will return instances created in previous calls.
An array of objects registered in the path.
This method can only be used if all nodes in the provided extension path
are of type Mono.Addins.TypeExtensionNode. The returned array is composed
by all objects created by calling the TypeExtensionNode.CreateInstance()
method for each node (or TypeExtensionNode.GetInstance() if
reuseCachedInstance is set to true)
Gets extension objects registered in a path.
An extension path.
Type of the return array elements.
An array of objects registered in the path.
This method can only be used if all nodes in the provided extension path
are of type Mono.Addins.TypeExtensionNode. The returned array is composed
by all objects created by calling the TypeExtensionNode.CreateInstance()
method for each node.
An InvalidOperationException exception is thrown if one of the found
objects is not a subclass of the provided type.
Gets extension objects registered in a path.
An extension path.
An array of objects registered in the path.
This method can only be used if all nodes in the provided extension path
are of type Mono.Addins.TypeExtensionNode. The returned array is composed
by all objects created by calling the TypeExtensionNode.CreateInstance()
method for each node.
An InvalidOperationException exception is thrown if one of the found
objects is not a subclass of the provided type.
Gets extension objects registered in a path.
An extension path.
When set to True, it will return instances created in previous calls.
An array of objects registered in the path.
This method can only be used if all nodes in the provided extension path
are of type Mono.Addins.TypeExtensionNode. The returned array is composed
by all objects created by calling the TypeExtensionNode.CreateInstance()
method for each node (or TypeExtensionNode.GetInstance() if
reuseCachedInstance is set to true).
An InvalidOperationException exception is thrown if one of the found
objects is not a subclass of the provided type.
Gets extension objects registered in a path.
An extension path.
Type of the return array elements.
When set to True, it will return instances created in previous calls.
An array of objects registered in the path.
This method can only be used if all nodes in the provided extension path
are of type Mono.Addins.TypeExtensionNode. The returned array is composed
by all objects created by calling the TypeExtensionNode.CreateInstance()
method for each node (or TypeExtensionNode.GetInstance() if
reuseCachedInstance is set to true).
An InvalidOperationException exception is thrown if one of the found
objects is not a subclass of the provided type.
Register a listener of extension node changes.
Path of the node.
A handler method.
Hosts can call this method to be subscribed to an extension change
event for a specific path. The event will be fired once for every
individual node change. The event arguments include the change type
(Add or Remove) and the extension node added or removed.
NOTE: The handler will be called for all nodes existing in the path at the moment of registration.
Unregister a listener of extension node changes.
Path of the node.
A handler method.
This method unregisters a delegate from the node change event of a path.
Register a listener of extension node changes.
Type defining the extension point
A handler method.
Hosts can call this method to be subscribed to an extension change
event for a specific type extension point. The event will be fired once for every
individual node change. The event arguments include the change type
(Add or Remove) and the extension node added or removed.
NOTE: The handler will be called for all nodes existing in the path at the moment of registration.
Unregister a listener of extension node changes.
Type defining the extension point
A handler method.
Extension change event.
This event is fired when any extension point in the add-in system changes.
The event args object provides the path of the changed extension, although
it does not provide information about what changed. Hosts subscribing to
this event should get the new list of nodes using a query method such as
AddinManager.GetExtensionNodes() and then update whatever needs to be updated.
Initializes a new instance of the class.
Initializes the add-in engine
Location of the add-in registry.
The add-in engine needs to be initialized before doing any add-in operation.
When initialized with this method, it will look for add-in in the add-in registry
located in the specified path.
Initializes the add-in engine.
Location of the add-in registry.
Add-ins directory. If the path is relative, it is considered to be relative
to the configDir directory.
The add-in engine needs to be initialized before doing any add-in operation.
Configuration information about the add-in registry will be stored in the
provided location. The add-in engine will look for add-ins in the provided
'addinsDir' directory.
When specifying a path, it is possible to use a special folder name as root.
For example: [Personal]/.config/MyApp. In this case, [Personal] will be replaced
by the location of the Environment.SpecialFolder.Personal folder. Any value
of the Environment.SpecialFolder enumeration can be used (always between square
brackets)
Initializes the add-in engine.
Location of the add-in registry.
Add-ins directory. If the path is relative, it is considered to be relative
to the configDir directory.
Location of the add-in database. If the path is relative, it is considered to be relative
to the configDir directory.
The add-in engine needs to be initialized before doing any add-in operation.
Configuration information about the add-in registry will be stored in the
provided location. The add-in engine will look for add-ins in the provided
'addinsDir' directory. Cached information about add-ins will be stored in
the 'databaseDir' directory.
When specifying a path, it is possible to use a special folder name as root.
For example: [Personal]/.config/MyApp. In this case, [Personal] will be replaced
by the location of the Environment.SpecialFolder.Personal folder. Any value
of the Environment.SpecialFolder enumeration can be used (always between square
brackets)
Finalizes the add-in engine.
Sets the default localizer to be used for this add-in engine
The add-in localizer
Checks if the provided add-ins are installed, and requests the installation of those
which aren't.
Message to show to the user when new add-ins have to be installed.
List of IDs of the add-ins to be checked.
This method checks if the specified add-ins are installed.
If some of the add-ins are not installed, it will use
the installer assigned to the DefaultAddinInstaller property
to install them. If the installation fails, or if DefaultAddinInstaller
is not set, an exception will be thrown.
Checks if an add-in has been loaded.
Full identifier of the add-in.
True if the add-in is loaded.
Forces the loading of an add-in.
Status monitor to keep track of the loading process.
Full identifier of the add-in to load.
This method loads all assemblies that belong to an add-in in memory.
All add-ins on which the specified add-in depends will also be loaded.
Notice that in general add-ins don't need to be explicitely loaded using
this method, since the add-in engine will load them on demand.
Creates a new extension context.
The new extension context.
Extension contexts can be used to query the extension model using particular condition values.
Raised when there is an error while loading an add-in
Raised when an add-in is loaded
Raised when an add-in is unloaded
Gets whether the add-in engine has been initialized.
Gets the default add-in installer
The default installer is used by the CheckInstalled method to request
the installation of missing add-ins.
Gets the default localizer for this add-in engine
Gets the localizer for the add-in that is invoking this property
Gets a reference to the RuntimeAddin object for the add-in that is invoking this property
Gets the add-in registry bound to this add-in engine
An assembly reflector
This interface can be implemented to provide a custom method for getting information about assemblies.
Called to initialize the assembly reflector
IAssemblyLocator instance which can be used to locate referenced assemblies.
Gets a list of custom attributes
The custom attributes.
An assembly, class or class member
Type of the attribute to be returned. It will always be one of the attribute types
defined in Mono.Addins.
'true' if inherited attributes must be returned
Gets a list of custom attributes
The attributes.
An assembly, class or class member
Base type of the attribute to be returned
'true' if inherited attributes must be returned
Loads an assembly.
The loaded assembly
Path of the assembly.
Loads the assembly specified in an assembly reference
The assembly
An assembly reference
Gets the names of all resources embedded in an assembly
The names of the resources
An assembly
Gets the data stream of a resource
The stream.
An assembly
The name of a resource
Gets all types defined in an assembly
The types
An assembly
Gets all assembly references of an assembly
A list of assembly references
An assembly
Looks for a type in an assembly
The type.
An assembly
Name of the type
Gets a custom attribute
The custom attribute.
An assembly, class or class member
Base type of the attribute to be returned. It will always be one of the attribute types
defined in Mono.Addins.
'true' if inherited attributes must be returned
Gets the name of a type (not including namespace)
The type name.
A type
Gets the full name of a type (including namespace)
The full name of the type
A type
Gets the assembly qualified name of a type
The assembly qualified type name
A type
Gets a list of all base types (including interfaces) of a type
An enumeration of the full name of all base types of the type
A type
Checks if a type is assignable to another type
'true' if the type is assignable
Expected base type.
A type.
Gets the fields of a type
The fields.
A type
Gets the name of a field.
The field name.
A field.
Gets the full name of the type of a field
The full type name
A field.
A custom attribute
Full name of the type of the custom attribute
Declares an extension point bound to a type
Initializes a new instance
Initializes a new instance
Path that identifies the extension point
Path that identifies the extension point
Description of the extension point.
Element name to be used when defining an extension in an XML manifest. The default name is "Type".
Display name of the extension point.
Type of the extension node to be created for extensions
Type of the custom attribute to be used to specify metadata for the extension point
Add-in flags
No flags
The add-in can't be uninstalled
The add-in can't be disabled
The add-in is not visible to end users
A collection of extensions
Initializes a new instance of the class.
Gets the at the specified index.
The index.
Base class for extension nodes which create extension objects
A node of the extension model.
An extension node is an element registered by an add-in in an extension point.
A host can get nodes registered in an extension point using methods such as
AddinManager.GetExtensionNodes(string), which returns a collection of ExtensionNode objects.
ExtensionNode will normally be used as a base class of more complex extension point types.
The most common subclass is Mono.Addins.TypeExtensionNode, which allows registering a class
implemented in an add-in.
Returns the child objects of a node.
An array of child objects.
This method only works if all children of this node are of type Mono.Addins.TypeExtensionNode.
The returned array is composed by all objects created by calling the
TypeExtensionNode.GetInstance() method for each node.
Returns the child objects of a node.
True if the method can reuse instances created in previous calls.
An array of child objects.
This method only works if all children of this node are of type Mono.Addins.TypeExtensionNode.
The returned array is composed by all objects created by calling the TypeExtensionNode.CreateInstance()
method for each node (or TypeExtensionNode.GetInstance() if reuseCachedInstance is set to true).
Returns the child objects of a node (with type check).
Type of the return array elements.
An array of child objects.
This method only works if all children of this node are of type Mono.Addins.TypeExtensionNode.
The returned array is composed by all objects created by calling the
TypeExtensionNode.GetInstance(Type) method for each node.
An InvalidOperationException exception is thrown if one of the found child objects is not a
subclass of the provided type.
Returns the child objects of a node (casting to the specified type)
An array of child objects.
This method only works if all children of this node are of type Mono.Addins.TypeExtensionNode.
The returned array is composed by all objects created by calling the
TypeExtensionNode.GetInstance() method for each node.
Returns the child objects of a node (with type check).
Type of the return array elements.
True if the method can reuse instances created in previous calls.
An array of child objects.
This method only works if all children of this node are of type Mono.Addins.TypeExtensionNode.
The returned array is composed by all objects created by calling the TypeExtensionNode.CreateInstance(Type)
method for each node (or TypeExtensionNode.GetInstance(Type) if reuseCachedInstance is set to true).
An InvalidOperationException exception will be thrown if one of the found child objects is not a subclass
of the provided type.
Returns the child objects of a node (casting to the specified type).
True if the method can reuse instances created in previous calls.
An array of child objects.
This method only works if all children of this node are of type Mono.Addins.TypeExtensionNode.
The returned array is composed by all objects created by calling the TypeExtensionNode.CreateInstance()
method for each node (or TypeExtensionNode.GetInstance() if reuseCachedInstance is set to true).
Reads the extension node data
The element containing the extension data
This method can be overriden to provide a custom method for reading extension node data from an element.
The default implementation reads the attributes if the element and assigns the values to the fields
and properties of the extension node that have the corresponding [NodeAttribute] decoration.
Called when the add-in that defined this extension node is actually loaded in memory.
Called when the add-in that defined this extension node is being
unloaded from memory.
Called when the children list of this node has changed. It may be due to add-ins
being loaded/unloaded, or to conditions being changed.
Called when a child node is added
Added node.
Called when a child node is removed
Removed node.
Identifier of the node.
It is not mandatory to specify an 'id' for a node. When none is provided,
the add-in manager will automatically generate an unique id for the node.
The ExtensionNode.HasId property can be used to know if the 'id' has been
specified by the developer or not.
Location of this node in the extension tree.
The node path is composed by the path of the extension point where it is defined,
the identifiers of its parent nodes, and its own identifier.
Parent node of this node.
Extension context to which this node belongs
Specifies whether the extension node has as an Id or not.
It is not mandatory to specify an 'id' for a node. When none is provided,
the add-in manager will automatically generate an unique id for the node.
This property will return true if an 'id' was provided for the node, and
false if the id was assigned by the add-in manager.
The add-in that registered this extension node.
This property provides access to the resources and types of the add-in that created this extension node.
Notifies that a child node of this node has been added or removed.
The first time the event is subscribed, the handler will be called for each existing node.
Child nodes of this extension node.
Gets the extension object declared by this node
Expected object type. An exception will be thrown if the object is not an instance of the specified type.
The extension object
The extension object is cached and the same instance will be returned at every call.
Gets the extension object declared by this node
The extension object
The extension object is cached and the same instance will be returned at every call.
Creates a new extension object
Expected object type. An exception will be thrown if the object is not an instance of the specified type.
The extension object
Creates a new extension object
The extension object
Declares a dependency on an add-in or add-in host
Initializes the attribute
Identifier of the add-in
Version of the add-in
Identifier of the add-in
Version of the add-in
An extension node with custom metadata
This is the default type for extension nodes bound to a custom extension attribute.
An extension node with custom metadata provided by an attribute
This interface is implemented by ExtensionNode<T> to provide non-generic access to the attribute instance.
The custom attribute containing the extension metadata
The custom attribute containing the extension metadata
Defines an add-in property
Initializes a new instance of the class.
Name of the property
Value of the property
Initializes a new instance of the class.
Name of the property
Locale of the property. It can be null if the property is not bound to a locale.
Value of the property
Name of the property
Locale of the property. It can be null if the property is not bound to a locale.
Value of the property
Base class for custon extension attributes.
Custom extension attributes can be used to declare extensions with custom metadata.
All custom extension attributes must subclass CustomExtensionAttribute.
Identifier of the node
Identifier of the node before which this node has to be placed
Identifier of the node after which this node has to be placed
Path of the extension point being extended.
This property is optional and useful only when there are several extension points which allow
using this custom attribute to define extensions.
The extension node bound to this attribute
The add-in that registered this extension node.
This property provides access to the resources and types of the add-in that created this extension node.
A localizer that supports localization of plural forms.
This interface can be implemented by add-in localizers which want to provide
support plural forms.
Gets a localized message which may contain plural forms.
The localized message.
Message identifier to use when the specified count is 1.
Default message identifier to use when the specified count is not 1.
The count that determines which plural form to use.
Converts message identifiers to localized messages.
Gets a localized message
Message identifier
The localized message
Gets a formatted and localized message
Message identifier (can contain string format placeholders)
Arguments for the string format operation
The formatted and localized string
Gets a formatted and localized message
Message identifier (can contain string format placeholders)
Arguments for the string format operation
The formatted and localized string
Gets a localized plural form for a message identifier
Message identifier for the singular form
Default result message for the plural form
Value count. Determines wether to use singular or plural form.
The localized message
Gets a localized and formatted plural form for a message identifier
Message identifier for the singular form (can contain string format placeholders)
Default result message for the plural form (can contain string format placeholders)
Value count. Determines whether to use singular or plural form.
Arguments for the string format operation
The localized message
Gets a localized and formatted plural form for a message identifier
Message identifier for the singular form (can contain string format placeholders)
Default result message for the plural form (can contain string format placeholders)
Value count. Determines whether to use singular or plural form.
Arguments for the string format operation
The localized message
A collection of extension point definitions.
Initializes a new instance of the class.
Gets the at the specified index.
The index.
Gets the with the specified path.
Path.
Declares a Gettext-based localizer for an add-in
Initializes a new instance of the class.
Initializes a new instance of the class.
Name of the catalog which contains the strings.
Initializes a new instance of the class.
Name of the catalog which contains the strings.
Relative path to the location of the catalog. This path must be relative to the add-in location.
The location path must contain a directory structure like this:
{language-id}/LC_MESSAGES/{Catalog}.mo
For example, the catalog for spanish strings would be located at:
locale/es/LC_MESSAGES/some-addin.mo
Name of the catalog which contains the strings.
Relative path to the location of the catalog. This path must be relative to the add-in location.
When not specified, the default value of this property is 'locale'.
The location path must contain a directory structure like this:
{language-id}/LC_MESSAGES/{Catalog}.mo
For example, the catalog for spanish strings would be located at:
locale/es/LC_MESSAGES/some-addin.mo
Declares an author of the add-in
Initializes the attribute
Name of the author
Author name
A condition type definition.
Initializes a new instance of the class.
Copies data from another condition type definition
Condition from which to copy
Gets or sets the identifier of the condition type
The identifier.
Gets or sets the name of the type that implements the condition
The name of the type.
Gets or sets the description of the condition.
The description.
An extension point definition.
Initializes a new instance of the class.
Copies another extension point.
Extension point from which to copy.
Adds an extension node type.
The extension node type.
Name of the node
Name of the type that implements the extension node.
This method can be used to register a new allowed node type for the extension point.
Gets or sets the path that identifies the extension point.
The path.
Gets or sets the display name of the extension point.
The name.
Gets or sets the description of the extension point.
The description.
Gets a list of add-ins that extend this extension point.
This value is only available when the add-in description is loaded from an add-in registry.
A node set which specifies the node types allowed in this extension point.
The node set.
Gets the conditions available in this node set.
The conditions.
A condition evaluator.
Add-ins may use conditions to register nodes in an extension point which
are only visible under some contexts. For example, an add-in registering
a custom menu option to the main menu of a sample text editor might want
to make that option visible only for some kind of files. To allow add-ins
to do this kind of check, the host application needs to define a new condition.
Evaluates the condition.
Condition node information.
'true' if the condition is satisfied.
Notifies that the condition has changed, and that it has to be re-evaluated.
This method must be called when there is a change in the state that determines
the result of the evaluation. When this method is called, all node conditions
depending on it are reevaluated and the corresponding events for adding or
removing extension nodes are fired.
A list of extension nodes.
Gets an enumerator which enumerates all nodes in the list
Copies all nodes to an array
The target array
Initial index where to copy to
Returns the node in the specified index.
The index.
Returns the node with the specified ID.
An id.
Number of nodes of the collection.
A list of extension nodes.
Gets an enumerator which enumerates all nodes in the list
Copies all nodes to an array
The target array
Initial index where to copy to
Returns the node in the specified index.
The index.
Returns the node with the specified ID.
An id.
Number of nodes of the collection.
Exception thrown when the add-in engine can't find a required add-in dependency
An extension node which specifies a type.
This class is a kind of Mono.Addins.ExtensionNode which can be used to register
types in an extension point. This is a very common case: a host application
defines an interface, and add-ins create classes that implement that interface.
The host will define an extension point which will use TypeExtensionNode as nodetext
type. Add-ins will register the classes they implement in that extension point.
When the nodes of an extension point are of type TypeExtensionNode it is then
possible to use query methods such as AddinManager.GetExtensionObjects(string),
which will get all nodes in the provided extension path and will create an object
for each node.
When declaring extension nodes in an add-in manifest, the class names can be
specified using the 'class' or 'type' attribute. If none of those attributes is
provided, the class name will be taken from the 'id' attribute.
TypeExtensionNode is the default extension type used when no type is provided
in the definition of an extension point.
Reads the extension node data
The element containing the extension data
This method can be overriden to provide a custom method for reading extension node data from an element.
The default implementation reads the attributes if the element and assigns the values to the fields
and properties of the extension node that have the corresponding [NodeAttribute] decoration.
Creates a new extension object
The extension object
Type of the object that this node creates
Name of the type of the object that this node creates
The name of the type.
An extension node which specifies a type with custom extension metadata
This is the default type for type extension nodes bound to a custom extension attribute.
The custom attribute containing the extension metadata
Describes the purpose of an add-in or add-in root
Initializes a new instance of the class.
Description of the add-in
Initializes a new instance of the class.
Description of the add-in
Locale of the description (for example, 'en-US', or 'en')
Description of the add-in
Locale of the description (for example, 'en-US', or 'en')
Marks an assembly as being an add-in root.
An add-in root is an assemly which can be extended by add-ins.
Marks an assembly as being an add-in.
Initializes an add-in marker attribute
Initializes an add-in marker attribute
Identifier of the add-in
Initializes an add-in marker attribute
Identifier of the add-in
Version of the add-in
Identifier of the add-in.
Version of the add-in.
Version of the add-in with which this add-in is backwards compatible.
Namespace of the add-in
Category of the add-in
Url to a web page with more information about the add-in
When set to True, the add-in will be automatically enabled after installing.
It's True by default.
Add-in flags
Initializes a new instance
Initializes a new instance
Identifier of the add-in root
Initializes a new instance
Identifier of the add-in root
Version of the add-in root
An extension definition.
An Extension is a collection of nodes which have to be registered in an extension point.
The target extension point is specified in the .Path property.
Initializes a new instance of the class.
Initializes a new instance of the class.
Path that identifies the extension point being extended
Gets the object extended by this extension
The extended object can be an or
an .
This method only works when the add-in description to which the extension belongs has been
loaded from an add-in registry.
Gets the node types allowed in this extension.
The allowed node types.
This method only works when the add-in description to which the extension belongs has been
loaded from an add-in registry.
Initializes a new instance of the class.
XML that describes the extension.
Gets or sets the path that identifies the extension point being extended.
The path.
Gets the extension nodes.
The extension nodes.
Delegate to be used in extension point subscriptions
Delegate to be used in extension point subscriptions
Arguments for extension events.
Creates a new instance.
Path of the extension node that has changed.
Checks if a path has changed.
An extension path.
'true' if the path is affected by the extension change event.
Checks if the specified path or any of its children paths is affected by the extension change event.
Path of the extension node that has changed.
Arguments for extension node events.
Creates a new instance
Type of change.
Node that has been added or removed.
Path of the extension that changed.
Type of change.
Node that has been added or removed.
Extension object that has been added or removed.
Type of change in an extension change event.
An extension node has been added.
An extension node has been removed.
Sets the display name of an add-in
Initializes a new instance of the class.
Name of the add-in
Initializes a new instance of the class.
Name of the add-in
Locale of the name (for example, 'en-US', or 'en')
Name of the add-in
Locale of the name (for example, 'en-US', or 'en')
Type of the content of a string extension node attribute
Plain text
A class name
A resource name
A file name
An add-in file system extension.
File system extensions can override the behavior of the add-in scanner and provide custom rules for
locating and scanning assemblies.
Called when the add-in scan is about to start
Called when the add-in scan has finished
Checks if a directory exists
'true' if the directory exists
Directory path
Checks if a file exists
'true' if the file exists
Path to the file
Gets the files in a directory
The full path of the files in the directory
Directory path
Gets the subdirectories of a directory
The subdirectories.
The directory
Gets the last write time of a file
The last write time.
File path.
Opens a text file
The text file stream
File path.
Opens a file.
The file stream.
The file path.
Gets an assembly reflector for a file.
The reflector for the file.
An assembly locator
A file path
Gets a value indicating whether this needs to be isolated from the main execution process
true if requires isolation; otherwise, false.
Assigns an attribute value to an extension
This attribute can be used together with the [Extenion] attribute to specify
a value for an attribute of the extension.
Initializes a new instance of the class.
Name of the attribute
Value of the attribute
Initializes a new instance of the class.
Type of the extension for which the attribute value is being set
Name of the attribute
Value of the attribute
Initializes a new instance of the class.
Path of the extension for which the attribute value is being set
Name of the attribute
Value of the attribute
Name of the attribute
Value of the attribute
Path of the extension for which the attribute value is being set
Type of the extension for which the attribute value is being set
An add-in installation handler
Installs a set of add-ins
Registry where to install
Message to show to the user when new add-ins have to be installed.
List of IDs of the add-ins to be installed.
This attribute can be applied to an ExtensionNode subclass to specify the default name and description.
This information will be used when an extension point does not define a name or description for a node type.
Initializes the attribute
Initializes the attribute
Name of the node
Initializes the attribute
Name of the node
Description of the node
Default name of the extension node
Default description of the extension node type
Type of a custom attribute which can be used to specify metadata for this extension node type
A collection of dependency definitions.
Initializes a new instance of the class.
Adds a dependency to the collection
The dependency to add.
Remove the specified dependency.
Dependency to remove.
Gets the at the specified index.
The idnex.
Declares a type extension.
When applied to a class, specifies that the class is an extension
class to be registered in a matching extension point.
Initializes a new instance of the ExtensionAttribute class.
Initializes a new instance
Path of the extension point.
The path is only required if there are several extension points defined for the same type.
Initializes a new instance
Type defining the extension point being extended
This constructor can be used to explicitly specify the type that defines the extension point
to be extended. By default, Mono.Addins will try to find any extension point defined in any
of the base classes or interfaces. The type parameter can be used when there is more than one
base type providing an extension point.
Path of the extension point being extended
The path is only required if there are several extension points defined for the same type.
Name of the extension node
Extension points may require extensions to use a specific node name.
This is needed when an extension point may contain several different types of nodes.
Identifier of the extension node.
The ExtensionAttribute.InsertAfter and ExtensionAttribute.InsertBefore
properties can be used to specify the relative location of a node. The nodes
referenced in those properties must be defined either in the add-in host
being extended, or in any add-in on which this add-in depends.
Identifier of the extension node before which this node has to be added in the extension point.
The ExtensionAttribute.InsertAfter and ExtensionAttribute.InsertBefore
properties can be used to specify the relative location of a node. The nodes
referenced in those properties must be defined either in the add-in host
being extended, or in any add-in on which this add-in depends.
Identifier of the extension node after which this node has to be added in the extension point.
Type defining the extension point being extended
This property can be used to explicitly specify the type that defines the extension point
to be extended. By default, Mono.Addins will try to find any extension point defined in any
of the base classes or interfaces. This property can be used when there is more than one
base type providing an extension point.
Run-time representation of an add-in.
Returns a string that represents the current RuntimeAddin.
A string that represents the current RuntimeAddin.
Gets a resource string
Name of the resource
The value of the resource string, or null if the resource can't be found.
The add-in engine will look for resources in the main add-in assembly and in all included add-in assemblies.
Gets a resource string
Name of the resource
When set to true, an exception will be thrown if the resource is not found.
The value of the resource string
The add-in engine will look for resources in the main add-in assembly and in all included add-in assemblies.
Gets a resource string
Name of the resource
When set to true, an exception will be thrown if the resource is not found.
Culture of the resource
The value of the resource string
The add-in engine will look for resources in the main add-in assembly and in all included add-in assemblies.
Gets a resource object
Name of the resource
Value of the resource
The add-in engine will look for resources in the main add-in assembly and in all included add-in assemblies.
Gets a resource object
Name of the resource
When set to true, an exception will be thrown if the resource is not found.
Value of the resource
The add-in engine will look for resources in the main add-in assembly and in all included add-in assemblies.
Gets a resource object
Name of the resource
When set to true, an exception will be thrown if the resource is not found.
Culture of the resource
Value of the resource
The add-in engine will look for resources in the main add-in assembly and in all included add-in assemblies.
Gets a type defined in the add-in
Full name of the type
A type.
The type will be looked up in the assemblies that implement the add-in,
and recursivelly in all add-ins on which it depends.
This method throws an InvalidOperationException if the type can't be found.
Gets a type defined in the add-in
Full name of the type
Indicates whether the method should throw an exception if the type can't be found.
A
The type will be looked up in the assemblies that implement the add-in,
and recursivelly in all add-ins on which it depends.
If the type can't be found, this method throw a InvalidOperationException if
'throwIfNotFound' is 'true', or 'null' otherwise.
Creates an instance of a type defined in the add-in
Name of the type.
A new instance of the type
The type will be looked up in the assemblies that implement the add-in,
and recursivelly in all add-ins on which it depends.
This method throws an InvalidOperationException if the type can't be found.
The specified type must have a default constructor.
Creates an instance of a type defined in the add-in
Name of the type.
Indicates whether the method should throw an exception if the type can't be found.
A new instance of the type
The type will be looked up in the assemblies that implement the add-in,
and recursivelly in all add-ins on which it depends.
If the type can't be found, this method throw a InvalidOperationException if
'throwIfNotFound' is 'true', or 'null' otherwise.
The specified type must have a default constructor.
Gets the path of an add-in file
Relative path of the file
Full path of the file
This method can be used to get the full path of a data file deployed together with the add-in.
Gets the path of an add-in file
Components of the file path
Full path of the file
This method can be used to get the full path of a data file deployed together with the add-in.
Gets the content of a resource
Name of the resource
Content of the resource, or null if not found
The add-in engine will look for resources in the main add-in assembly and in all included add-in assemblies.
Gets the content of a resource
Name of the resource
When set to true, an exception will be thrown if the resource is not found.
Content of the resource.
The add-in engine will look for resources in the main add-in assembly and in all included add-in assemblies.
Identifier of the add-in.
Version of the add-in.
Path to a directory where add-ins can store private configuration or status data
Localizer which can be used to localize strings defined in this add-in
Declares an add-in assembly import
An add-in may be composed by several assemblies and data files.
Assemblies must be declared in the main assembly using this attribute, or in the XML manifest.
It is important to properly declare all files used by an add-in.
For example, when a type from the add-in is required (e.g. an ICommand implementation),
only properly declared assemblies will be checked.
This information is also used by setup tools to know exactly what needs to be packaged when creating
an add-in package, or to know what needs to be deleted when removing an add-in.
Initializes a new instance
Path to the assembly. Must be relative to the assembly declaring this attribute.
Path to the assembly. Must be relative to the assembly declaring this attribute.
When set to true (the default), the included assembly will be scanned
looking for extension point declarations.
Delegate to be used in add-in error subscriptions
Provides information about an add-in loading error.
Initializes a new instance of the class.
Error message
Add-in identifier.
Exception that caused the error.
Exception that caused the error.
Error message
An add-in.
Checks version compatibility.
An add-in version.
True if the provided version is compatible with this add-in.
This method checks the CompatVersion property to know if the provided version is compatible with the version of this add-in.
Returns a that represents the current .
A that represents the current .
Compares two add-in versions
-1 if v1 is greater than v2, 0 if v1 == v2, 1 if v1 less than v2
A version
A version
Returns the identifier of an add-in
The full identifier.
Namespace of the add-in
Name of the add-in
Version of the add-in
Given a full add-in identifier, returns the namespace and name of the add-in (it removes the version number)
Add-in identifier.
Given a full add-in identifier, returns the version the add-in
The version.
Splits a full add-in identifier in name and version
Add-in identifier.
The resulting name
The resulting version
Full identifier of the add-in, including namespace and version.
Namespace of the add-in.
Identifier of the add-in (without namespace)
Version of the add-in
Display name of the add-in
Custom properties specified in the add-in header
Gets or sets the enabled status of the add-in.
This property can be used to enable or disable an add-in.
The enabled status of an add-in is stored in the add-in registry,
so when an add-in is disabled, it will be disabled for all applications
sharing the same registry.
When an add-in is enabled or disabled, the extension points currently loaded
in memory will be properly updated to include or exclude extensions from the add-in.
Returns 'true' if the add-in is installed in the user's personal folder
Path to the add-in file (it can be an assembly or a standalone XML manifest)
Description of the add-in
A collection of condition types
Initializes a new instance of the class.
Gets the at the specified index.
Index.
The condition.
A collection of module descriptions
Initializes a new instance of the class.
Gets the at the specified index.
The index.
A collection of node attributes
Initializes a new instance of the class.
Gets the at the specified index.
The index.
Definition of a dependency of an add-in on an assembly.
Initializes a new instance of the class.
Gets or sets the full name of the assembly
The full name of the assembly.
Gets or sets the name of the package that provides the assembly.
The name of the package that provides the assembly.
Display name of the dependency
The name.
Declares an optional add-in module
Initializes the instance.
Relative path to the assembly that implements the optional module
Relative path to the assembly that implements the optional module
An add-in registry.
An add-in registry is a data structure used by the add-in engine to locate add-ins to load.
A registry can be configured to look for add-ins in several directories. However, add-ins
copied to those directories won't be detected until an explicit add-in scan is requested.
The registry can be updated by an application by calling Registry.Update(), or by a user by
running the 'mautil' add-in setup tool.
The registry has information about the location of every add-in and a timestamp of the last
check, so the Update method will only scan new or modified add-ins. An application can
add a call to Registry.Update() in the Main method to detect all new add-ins every time the
app is started.
Every add-in added to the registry is parsed and validated, and if there is any error it
will be rejected. The registry is also in charge of scanning the add-in assemblies and look
for extensions and other information declared using custom attributes. That information is
merged with the manifest information (if there is one) to create a complete add-in
description ready to be used at run-time.
Mono.Addins allows sharing an add-in registry among several applications. In this context,
all applications sharing the registry share the same extension point model, and it is
possible to implement add-ins which extend several hosts.
Initializes a new instance.
Location of the add-in registry.
Creates a new add-in registry located in the provided path.
The add-in registry will look for add-ins in an 'addins'
subdirectory of the provided registryPath.
When specifying a path, it is possible to use a special folder name as root.
For example: [Personal]/.config/MyApp. In this case, [Personal] will be replaced
by the location of the Environment.SpecialFolder.Personal folder. Any value
of the Environment.SpecialFolder enumeration can be used (always between square
brackets)
Initializes a new instance.
Location of the add-in registry.
Location of the application.
Creates a new add-in registry located in the provided path.
The add-in registry will look for add-ins in an 'addins'
subdirectory of the provided registryPath.
When specifying a path, it is possible to use a special folder name as root.
For example: [Personal]/.config/MyApp. In this case, [Personal] will be replaced
by the location of the Environment.SpecialFolder.Personal folder. Any value
of the Environment.SpecialFolder enumeration can be used (always between square
brackets)
Initializes a new instance of the class.
Location of the add-in registry.
Location of the application.
Add-ins directory. If the path is relative, it is considered to be relative
to the configDir directory.
Creates a new add-in registry located in the provided path.
Configuration information about the add-in registry will be stored in
'registryPath'. The add-in registry will look for add-ins in the provided
'addinsDir' directory.
When specifying a path, it is possible to use a special folder name as root.
For example: [Personal]/.config/MyApp. In this case, [Personal] will be replaced
by the location of the Environment.SpecialFolder.Personal folder. Any value
of the Environment.SpecialFolder enumeration can be used (always between square
brackets)
Initializes a new instance of the class.
Location of the add-in registry.
Location of the application.
Add-ins directory. If the path is relative, it is considered to be relative
to the configDir directory.
Location of the add-in database. If the path is relative, it is considered to be relative
to the configDir directory.
Creates a new add-in registry located in the provided path.
Configuration information about the add-in registry will be stored in
'registryPath'. The add-in registry will look for add-ins in the provided
'addinsDir' directory. Cached information about add-ins will be stored in
the 'databaseDir' directory.
When specifying a path, it is possible to use a special folder name as root.
For example: [Personal]/.config/MyApp. In this case, [Personal] will be replaced
by the location of the Environment.SpecialFolder.Personal folder. Any value
of the Environment.SpecialFolder enumeration can be used (always between square
brackets)
Gets the global registry.
The global registry
The global add-in registry is created in "~/.config/mono.addins",
and it is the default registry used when none is specified.
Disposes the add-in engine.
Returns an add-in from the registry.
Identifier of the add-in.
The add-in, or 'null' if not found.
The add-in identifier may optionally include a version number, for example: "TextEditor.Xml,1.2"
Returns an add-in from the registry.
Identifier of the add-in.
'true' if the exact add-in version must be found.
The add-in, or 'null' if not found.
The add-in identifier may optionally include a version number, for example: "TextEditor.Xml,1.2".
In this case, if the exact version is not found and exactVersionMatch is 'false', it will
return one than is compatible with the required version.
Gets all add-ins or add-in roots registered in the registry.
The addins.
Flags.
Gets all add-ins registered in the registry.
Add-ins registered in the registry.
Gets all add-in roots registered in the registry.
Descriptions of all add-in roots.
Loads an add-in description
Progress tracker.
Name of the file to load
An add-in description
This method loads an add-in description from a file. The file can be an XML manifest or an
assembly that implements an add-in.
Reads an XML add-in manifest
Path to the XML file
An add-in description
Reads an XML add-in manifest
Reader that contains the XML
Base path to use to discover add-in files
An add-in description
Checks whether an add-in is enabled.
Identifier of the add-in.
'true' if the add-in is enabled.
Enables an add-in.
Identifier of the add-in
If the enabled add-in depends on other add-ins which are disabled,
those will automatically be enabled too.
Disables an add-in.
Identifier of the add-in.
When an add-in is disabled, all extension points it defines will be ignored
by the add-in engine. Other add-ins which depend on the disabled add-in will
also automatically be disabled.
Registers a set of add-ins for uninstallation.
Identifier of the add-in
Files to be uninstalled
This method can be used to instruct the add-in manager to uninstall
an add-in the next time the registry is updated. This is useful
when an add-in manager can't delete an add-in because if it is
loaded.
Determines whether an add-in is registered for uninstallation
true if the add-in is registered for uninstallation
Identifier of the add-in
Internal use only
Resets the configuration files of the registry
Updates the add-in registry.
This method must be called after modifying, installing or uninstalling add-ins.
When calling Update, every add-in added to the registry is parsed and validated,
and if there is any error it will be rejected. It will also cache add-in information
needed at run-time.
If during the update operation the registry finds new add-ins or detects that some
add-ins have been deleted, the loaded extension points will be updated to include
or exclude extension nodes from those add-ins.
Updates the add-in registry.
Progress monitor to keep track of the update operation.
This method must be called after modifying, installing or uninstalling add-ins.
When calling Update, every add-in added to the registry is parsed and validated,
and if there is any error it will be rejected. It will also cache add-in information
needed at run-time.
If during the update operation the registry finds new add-ins or detects that some
add-ins have been deleted, the loaded extension points will be updated to include
or exclude extension nodes from those add-ins.
Regenerates the cached data of the add-in registry.
Progress monitor to keep track of the rebuild operation.
Registers an extension. Only AddinFileSystemExtension extensions are supported right now.
The extension to register
Unregisters an extension.
The extension to unregister
Location of the add-in registry.
Gets a value indicating whether there are pending add-ins to be uninstalled installed
Gets the default add-ins folder of the registry.
For every add-in registry there is an add-in folder where the registry will look for add-ins by default.
This folder is an "addins" subdirectory of the directory where the repository is located. In most cases,
this folder will only contain .addins files referencing other more convenient locations for add-ins.
Addin search flags.
Add-ins are included in the search
Add-in roots are included in the search
Both add-in and add-in roots are included in the search
Only the latest version of every add-in or add-in root is included in the search
An IProgressStatus class which writes output to the console.
Progress status listener.
Sets the description of the current operation.
A message
This method is called by the add-in engine to show a description of the operation being monitorized.
Sets the progress of the operation.
A number between 0 and 1. 0 means no progress, 1 means operation completed.
This method is called by the add-in engine to show the progress of the operation being monitorized.
Writes text to the log.
Message to write
Reports a warning.
Warning message
This method is called by the add-in engine to report a warning in the operation being monitorized.
Reports an error.
Error message
Exception that caused the error. It can be null.
This method is called by the add-in engine to report an error occurred while executing the operation being monitorized.
Cancels the operation being montorized.
Log level requested by the user: 0: no log, 1: normal log, >1 verbose log
Returns True when the user requested to cancel this operation
Initializes a new instance
Set to true to enabled verbose log
Initializes a new instance
Verbosity level. 0: not verbose, 1: normal, >1 extra verbose
Sets the description of the current operation.
A message
This method is called by the add-in engine to show a description of the operation being monitorized.
Sets the progress of the operation.
A number between 0 and 1. 0 means no progress, 1 means operation completed.
This method is called by the add-in engine to show the progress of the operation being monitorized.
Writes text to the log.
Message to write
Reports a warning.
Warning message
This method is called by the add-in engine to report a warning in the operation being monitorized.
Reports an error.
Error message
Exception that caused the error. It can be null.
This method is called by the add-in engine to report an error occurred while executing the operation being monitorized.
Cancels the operation being montorized.
Returns True when the user requested to cancel this operation
Log level requested by the user: 0: no log, 1: normal log, >1 verbose log
Definition of a dependency of an add-in on another add-in.
Initializes a new instance of the class.
Initializes a new instance of the class.
Full identifier of the add-in (includes version)
Initializes a new instance of the class.
Identifier of the add-in.
Version of the add-in.
Gets the full addin identifier.
The full addin identifier.
Includes namespace and version number. For example: MonoDevelop.TextEditor,1.0
Gets or sets the addin identifier.
The addin identifier.
Gets or sets the version.
The version.
Display name of the dependency.
The name.
Indicates that a field or property is bound to a node attribute
Initializes a new instance
Initializes a new instance
XML name of the attribute.
Initializes a new instance
XML name of the attribute.
Description of the attribute.
Initializes a new instance
XML name of the attribute.
Indicates whether the attribute is required or not.
Initializes a new instance
XML name of the attribute.
Indicates whether the attribute is required or not.
Description of the attribute.
Initializes a new instance
XML name of the attribute.
Type of the extension node attribute.
The type of the attribute is only required when applying this attribute at class level.
It is not required when it is applied to a field, since the attribute type will be the type of the field.
Initializes a new instance
XML name of the attribute.
Type of the extension node attribute.
Description of the attribute.
The type of the attribute is only required when applying this attribute at class level.
It is not required when it is applied to a field, since the attribute type will be the type of the field.
Initializes a new instance
XML name of the attribute.
Type of the extension node attribute.
Indicates whether the attribute is required or not.
The type of the attribute is only required when applying this attribute at class level.
It is not required when it is applied to a field, since the attribute type will be the type of the field.
Initializes a new instance
XML name of the attribute.
Type of the extension node attribute.
Indicates whether the attribute is required or not.
Description of the attribute.
The type of the attribute is only required when applying this attribute at class level.
It is not required when it is applied to a field, since the attribute type will be the type of the field.
XML name of the attribute.
If the name is not specified, the field name to which the [NodeAttribute]
is applied will be used as name. Providing a name is mandatory when applying
[NodeAttribute] at class level.
Indicates whether the attribute is required or not.
Type of the extension node attribute.
To be used only when applying [NodeAttribute] at class level. It is not required when it
is applied to a field, since the attribute type will be the type of the field.
Description of the attribute.
To be used in the extension point documentation.
When set to True, the value of the field or property is expected to be a string id which
will be localized by the add-in engine
Gets or sets the type of the content.
Allows specifying the type of the content of a string attribute.
This value is for documentation purposes only.
A collection of add-in properties
Gets the value of a property
The property value.
Name of the property.
If the property is localized, it will return the value for the current language if exists, or the
default value if it doesn't.
Gets the value of a property
The property value.
Name of the property.
Locale for which the value must be returned.
Sets the value of a property
Name of the property
New value.
Sets the value of a property for a specific locale
Name of the property.
New value.
Locale of the property to be set.
Removes a property.
Name of the property.
This method only removes properties which have no locale set.
Removes a property with a specified locale
Name of the property
Locale of the property
Declares an add-in file import
An add-in may be composed by several assemblies and data files.
Data files must be declared in the main assembly using this attribute, or in the XML manifest.
It is important to properly declare all files used by an add-in.
This information is used by setup tools to know exactly what needs to be packaged when creating
an add-in package, or to know what needs to be deleted when removing an add-in.
Initializes a new instance
Path to the file. Must be relative to the assembly declaring this attribute.
Path to the file. Must be relative to the assembly declaring this attribute.
A collection of node set identifiers
Gets the collection enumerator.
The enumerator.
Add the specified node set identifier.
Node set identifier.
Remove a node set identifier
Node set identifier.
Clears the collection
Checks if the specified identifier is present in the collection
true if the node set identifier is present.
Returns the index of the specified node set identifier
The index.
A node set identifier.
Gets the node set identifier at the specified index.
An index.
Gets the item count.
The count.
A module definition.
Optional modules can be used to declare extensions which will be registered only if some
specified add-in dependencies can be satisfied.
Initializes a new instance of the class.
Checks if this module depends on the specified add-in.
true if there is a dependency.
Identifier of the add-in
Adds an extension node to the module.
The extension node.
Path that identifies the extension point.
Node name.
This method creates a new Extension object for the provided path if none exist.
Gets an extension instance.
The extension instance.
Path that identifies the extension point that the extension extends.
This method creates a new Extension object for the provided path if none exist.
Adds an add-in reference (there is a typo in the method name)
Identifier of the add-in.
Version of the add-in.
Gets the list of paths to be ignored by the add-in scanner.
Gets all external files
All files.
External files are data files and assemblies explicitly referenced in the Runtime section of the add-in manifest.
Gets the list of external assemblies used by this module.
Gets the list of external data files used by this module
Gets the dependencies of this module
Gets the extensions of this module
Addin category attribute.
Initializes the attribute
The category to which the add-in belongs
The category to which the add-in belongs
A collection of node types.
Initializes a new instance of the class.
Gets the at the specified index.
The index.
Gets the with the specified id.
Identifier.
Description of the attribute of a node type.
Initializes a new instance of the class.
Copies data from another node attribute.
The attribute from which to copy.
Gets or sets the name of the attribute.
The name.
Gets or sets a value indicating whether this is required.
true if required; otherwise, false.
Gets or sets a value indicating whether this is localizable.
true if localizable; otherwise, false.
Gets or sets the type of the attribute.
The type.
Gets or sets the description of the attribute.
The description.
Gets or sets the type of the content.
Allows specifying the type of the content of a string attribute.
The value of this property is only informative, and it doesn't
have any effect on how add-ins are packaged or loaded.