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.