Skip to content

Mono.Addins Reference

DamianSuess edited this page Dec 18, 2018 · 2 revisions

Introduction

ToolsHub is extendable via add-ins using Mono.Addins. So, why Mono.Addins and not some lightweight custom code? Simply put, I wanted to pay homage to the project and all it's Mono glory. Thank you Ximian, er.. Xamarin!

Why Mono.Addins

  1. It provides wonderful flexibility to quickly extend an application
  2. Because we want to throw some love back at the Mono project, MonoDevelop, and its forerunner, SharpDevelop.

Architecture

Creating an Add-in Host

Add-in host and add-in root are the same things according to the Mono.Addins documentation.

XML Manifest

ToolsHub uses the XML manifest file ToolsHub.addin.xml to define our main add-in root. Keep in mind XML attributes ARE case-sensitive.

<Addin id="ToolsHub"
       namespace="ToolsHub"
       version="1.0"
       isroot="true"
       compatVersion="1.0">
</Addin>

AddinDescription Attributes

For more info check out the following

  • Namespace: Mono.Addins.Description
  • Class: AddinDescription
  • Method: Read (TextReader reader, string basePath)
Name Description
id
namespace
name
version
compatVersion
author
url
copyright
description
category
basePath
global
isRoot, isroot
defaultEnabled
flags