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