diff --git a/bin/ICSharpCode.SharpZipLib.dll b/bin/ICSharpCode.SharpZipLib.dll new file mode 100644 index 0000000000..6c6a5d4ad8 Binary files /dev/null and b/bin/ICSharpCode.SharpZipLib.dll differ diff --git a/bin/Mono.Addins.CecilReflector.dll b/bin/Mono.Addins.CecilReflector.dll index 9ca4631fae..c01c8bf9b1 100755 Binary files a/bin/Mono.Addins.CecilReflector.dll and b/bin/Mono.Addins.CecilReflector.dll differ diff --git a/bin/Mono.Addins.Setup.dll b/bin/Mono.Addins.Setup.dll index 75773aa76c..eabbecac67 100755 Binary files a/bin/Mono.Addins.Setup.dll and b/bin/Mono.Addins.Setup.dll differ diff --git a/bin/Mono.Addins.Setup.xml b/bin/Mono.Addins.Setup.xml new file mode 100644 index 0000000000..f5ce70a0b0 --- /dev/null +++ b/bin/Mono.Addins.Setup.xml @@ -0,0 +1,1140 @@ + + + + Mono.Addins.Setup + + + + + An IAddinInstaller implementation which interacts with the user through the console + + + + + Initializes a new instance of the class. + + + + + Gets or sets whether the installer can ask questions to the user + + + + + Log level (0:normal, 1+:verbose); + + + + + An add-in package + + + + + Creates a package object for an add-in available in an on-line repository + + + An add-in reference + + + The package + + + + + Creates a package object for a local package file + + + Package file path + + + The package + + + + + Name of the package + + + + + Returns true if the package will be installed in the shared directory, + false if it will be installed in the user directory. + + + + + A reference to an add-in available in an on-line repository + + + + + Begins downloading a support file + + + Result of the asynchronous operation, to be used when calling EndDownloadSupportFile to + get the download result. + + + Name of the file. + + + Callback to be called when the download operation ends. + + + Custom state object provided by the caller. + + + This method can be used to get the contents of a support file of an add-in. + A support file is a file referenced in the custom properties of an add-in. + + + + + Gets the result of the asynchronous download of a file + + + The downloaded file. + + + The async result object returned by BeginDownloadSupportFile. + + + + + Add-in information + + + + + Url to the add-in package + + + + + The URL of the repository + + + + + Name of the repository + + + + + An installation exception + + + + + Initializes the exception + + + Error message + + + + + Initializes the exception + + + Error message + + + Inner exception + + + + + A command line add-in manager. + + + This class can be used to provide an add-in management command line tool to applications. + + + + + Creates a new instance + + + Add-in registry to manage. + + + + + Runs the command line tool. + + + Array that contains the command line arguments + + + Index of the arguments array that has the first argument for the management tool + + + 0 if it succeeds. != 0 otherwise + + + + + Runs the command line tool. + + + Command line arguments + + + 0 if it succeeds. != 0 otherwise + + + + + Adds a custom command to the add-in manager + + + Category under which the command has to be shown in the help text + + + Name of the command + + + Short name of the command (it's an alias of the normal name) + + + Formal description of the arguments that the command accepts. For example: "[addin-id|addin-file] [--xml] [--all] [--full] [--namespace <namespace>]" + + + Short description of the command + + + Long description of the command + + + Delegate to be invoked to run the command + + + + + Prints help about the add-in management tool, or about a specific command + + + Optional command name and arguments + + + + + Display name of the host application + + + + + Default add-in namespace of the application (optional). If set, only add-ins that belong to that namespace + will be shown in add-in lists. + + + + + Enables or disables verbose output + + + + + Sets or gets the verbose output level (0: normal output, 1:verbose, 2+:extra verbose) + + + + + A command handler + + + + + A collection of packages + + + + + Initializes a new instance of the class. + + + + + Copy constructor + + + Collection where to copy from + + + + + Adds a package + + + A package + + + + + Checks if a package is present in the collection + + + The package + + + True if the package is preent + + + + + Adds a list of packages to the collection + + + The list of packages to add + + + + + Gets a package + + + Package index + + + + + Basic add-in information + + + + + Compares the versions of two add-ins + + + Another add-in + + + Result of comparison + + + + + Full identifier of the add-in + + + + + Display name of the add-in + + + + + Namespace of the add-in + + + + + Version of the add-in + + + + + Version with which this add-in is compatible + + + + + Add-in author + + + + + Add-in copyright + + + + + Web page URL with more information about the add-in + + + + + Description of the add-in + + + + + Category of the add-in + + + + + Dependencies of the add-in + + + + + Optional dependencies of the add-in + + + + + Custom properties specified in the add-in header + + + + + A registry of on-line repositories + + + This class can be used to manage on-line repository subscriptions. + + + + + Subscribes to an on-line repository + + + Progress monitor where to show progress status and log + + + URL of the repository + + + A repository reference + + + The repository index is not downloaded by default. It can be downloaded + by calling UpdateRepository. + + + + + Subscribes to an on-line repository + + + Progress monitor where to show progress status and log + + + URL of the repository + + + When set to True, the repository index will be downloaded. + + + A repository reference + + + + + Removes an on-line repository subscription. + + + URL of the repository. + + + + + Enables or disables a repository + + + URL of the repository + + + 'true' if the repository has to be enabled. + + + Disabled repositories are ignored when calling UpdateAllRepositories. + + + + + Checks if a repository is already subscribed. + + + URL of the repository + + + True if the repository is already subscribed. + + + + + Gets a list of subscribed repositories + + + A list of repositories. + + + + + Updates the add-in index of all subscribed repositories. + + + Progress monitor where to show progress status and log + + + + + Updates the add-in index of the provided repository + + + Progress monitor where to show progress status and log + + + URL of the repository + + + + + Gets a list of available add-in updates. + + + A list of add-in references. + + + The list is generated by looking at the add-ins currently installed and checking if there is any + add-in with a newer version number in any of the subscribed repositories. This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Gets a list of available add-in updates. + + + Search flags + + + A list of add-in references. + + + The list is generated by looking at the add-ins currently installed and checking if there is any + add-in with a newer version number in any of the subscribed repositories. This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Gets a list of available add-in updates in a specific repository. + + + The repository URL + + + A list of add-in references. + + + The list is generated by looking at the add-ins currently installed and checking if there is any + add-in with a newer version number in the provided repository. This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Gets a list of available updates for an add-in. + + + Identifier of the add-in. + + + List of updates for the specified add-in. + + + The list is generated by checking if there is any + add-in with a newer version number in any of the subscribed repositories. This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Gets a list of available updates for an add-in. + + + Identifier of the add-in. + + + Search flags. + + + List of updates for the specified add-in. + + + The list is generated by checking if there is any + add-in with a newer version number in any of the subscribed repositories. This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Gets a list of available updates for an add-in in a specific repository + + + Identifier of the add-in. + + + Identifier of the add-in. + + + List of updates for the specified add-in. + + + The list is generated by checking if there is any + add-in with a newer version number in the provided repository. This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Gets a list of available updates for an add-in in a specific repository + + + Identifier of the add-in. + + + Identifier of the add-in. + + + Search flags. + + + List of updates for the specified add-in. + + + The list is generated by checking if there is any + add-in with a newer version number in the provided repository. This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Gets a list of all available add-ins + + + A list of add-ins + + + This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Gets a list of all available add-ins + + + The available addins. + + + Search flags. + + + This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Gets a list of all available add-ins in a repository + + + A repository URL + + + A list of add-ins + + + This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Gets a list of all available add-ins in a repository + + + A repository URL + + + Search flags. + + + A list of add-ins + + + This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Checks if an add-in is available to be installed + + + Identifier of the add-in + + + Version of the add-in (optional, it can be null) + + + A list of add-ins + + + List of references to add-ins available in on-line repositories. This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Checks if an add-in is available to be installed from a repository + + + A repository URL + + + Identifier of the add-in + + + Version of the add-in (optional, it can be null) + + + A list of add-ins + + + List of references to add-ins available in the repository. This method uses cached + information from on-line repositories. Make sure you call UpdateRepository or UpdateAllRepositories + before using this method to ensure that the latest information is available. + + + + + Repository search flags. + + + + + No special search options + + + + + Only the latest version of every add-in is included in the search + + + + + An on-line add-in repository + + + + + Path to the cached add-in repository file + + + + + Url of the repository + + + + + Do not use. Use Title instead. + + + + + Title of the repository + + + + + Last change timestamp + + + + + Gets a value indicating whether this is enabled. + + + true if enabled; otherwise, false. + + + + + Helper for making web requests with support for authenticated proxies. + + + + + Sets a custom request handler that can handle requests for authenticated proxy servers. + + The custom request handler. + + + + Gets the web response, using the request handler to handle proxy authentication + if necessary. + + The response. + Callback for creating the request. + Callback for preparing the request, e.g. writing the request stream. + Cancellation token. + + Keeps sending requests until a response code that doesn't require authentication happens or if the request + requires authentication and the user has stopped trying to enter them (i.e. they hit cancel when they are prompted). + + + + + Gets the web response, using the request handler to handle proxy authentication + if necessary. + + The response. + Callback for creating the request. + Callback for preparing the request, e.g. writing the request stream. + Cancellation token. + + Keeps sending requests until a response code that doesn't require authentication happens or if the request + requires authentication and the user has stopped trying to enter them (i.e. they hit cancel when they are prompted). + + + + + Determines whether an error code is likely to have been caused by internet reachability problems. + + + + + Provides tools for managing add-ins + + + This class can be used to manage the add-ins of an application. It allows installing and uninstalling + add-ins, taking into account add-in dependencies. It provides methods for installing add-ins from on-line + repositories and tools for generating those repositories. + + + + + Initializes a new instance + + + If the add-in manager is initialized (AddinManager.Initialize has been called), then this instance + will manage the add-in registry of the initialized engine. + + + + + Initializes a new instance + + + Add-in registry to manage + + + + + Resolves add-in dependencies. + + + Progress monitor where to show progress status + + + List of add-ins to check + + + Packages that need to be installed. + + + Packages that need to be uninstalled. + + + Add-in dependencies that could not be resolved. + + + True if all dependencies could be resolved. + + + This method can be used to get a list of all packages that have to be installed in order to install + an add-in or set of add-ins. The list of packages to install will include the package that provides the + add-in, and all packages that provide the add-in dependencies. In some cases, packages may need to + be installed (for example, when an installed add-in needs to be upgraded). + + + + + Resolves add-in dependencies. + + + Progress monitor where to show progress status + + + Packages that need to be installed. + + + Packages that need to be uninstalled. + + + Add-in dependencies that could not be resolved. + + + True if all dependencies could be resolved. + + + This method can be used to get a list of all packages that have to be installed in order to satisfy + the dependencies of a package or set of packages. The 'packages' argument must have the list of packages + to be resolved. When resolving dependencies, if there is any additional package that needs to be installed, + it will be added to the same 'packages' collection. In some cases, packages may need to + be installed (for example, when an installed add-in needs to be upgraded). Those packages will be added + to the 'toUninstall' collection. Packages that could not be resolved are added to the 'unresolved' + collection. + + + + + Installs add-in packages + + + Progress monitor where to show progress status + + + Paths to the packages to install + + + True if the installation succeeded + + + + + Installs add-in packages from on-line repositories + + + Progress monitor where to show progress status + + + References to the add-ins to be installed + + + True if the installation succeeded + + + + + Installs add-in packages + + + Progress monitor where to show progress status + + + Packages to install + + + True if the installation succeeded + + + + + Uninstalls an add-in. + + + Progress monitor where to show progress status + + + Full identifier of the add-in to uninstall. + + + + + Uninstalls a set of add-ins + + + Progress monitor where to show progress status + + + Full identifiers of the add-ins to uninstall. + + + + + Gets information about an add-in + + + The add-in + + + Add-in header data + + + + + Gets a list of add-ins which depend on an add-in + + + Full identifier of an add-in. + + + When set to True, dependencies will be gathered recursivelly + + + List of dependent add-ins. + + + This methods returns a list of add-ins which have the add-in identified by 'id' as a direct + (or indirect if recursive=True) dependency. + + + + + Packages an add-in + + + Progress monitor where to show progress status + + + Directory where to generate the package + + + Paths to the add-ins to be packaged. Paths can be either the main assembly of an add-in, or an add-in + manifest (.addin or .addin.xml). + + + This method can be used to create a package for an add-in, which can then be pushed to an on-line + repository. The package will include the main assembly or manifest of the add-in and any external + file declared in the add-in metadata. + + + + + Generates an on-line repository + + + Progress monitor where to show progress status + + + Path to the directory that contains the add-ins and that is going to be published + + + This method generates the index files required to publish a directory as an online repository + of add-ins. + + + + + Gets a reference to an extensible application + + + Name of the application + + + The Application object. Null if not found. + + + + + Gets a reference to an extensible application + + + Name of the application + + + Custom paths where to look for the application. + + + The Application object. Null if not found. + + + + + Gets a lis of all known extensible applications + + + A list of applications. + + + + + Gets a lis of all known extensible applications + + + Custom paths where to look for applications. + + + A list of applications. + + + + + The add-in registry being managed + + + + + Default add-in namespace of the application (optional). If set, only add-ins that belong to that namespace + will be shown in add-in lists. + + + + + Directory where to install add-ins. If not specified, the 'addins' subdirectory of the + registry location is used. + + + + + Returns a RepositoryRegistry which can be used to manage on-line repository references + + + + + A registered extensible application + + + + + Add-in registry of the application + + + + + Description of the application + + + + + Name of the application + + + + + Path to the add-in registry + + + + + Path to the directory that contains the main executable assembly of the application + + + + + Command to be used to execute the application in add-in development mode. + + + + + Path to the default add-ins directory for the aplpication + + + + + Path to the add-in cache for the application + + + + diff --git a/bin/Mono.Addins.dll b/bin/Mono.Addins.dll index 326ed1d7dd..3026991633 100755 Binary files a/bin/Mono.Addins.dll and b/bin/Mono.Addins.dll differ diff --git a/bin/Mono.Addins.xml b/bin/Mono.Addins.xml new file mode 100644 index 0000000000..b9bdd4cf1c --- /dev/null +++ b/bin/Mono.Addins.xml @@ -0,0 +1,6120 @@ + + + + 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. + + + + diff --git a/bin/mautil.exe b/bin/mautil.exe new file mode 100644 index 0000000000..34b16c5ddb Binary files /dev/null and b/bin/mautil.exe differ