...
Antony’s modulesystem allows you to write a registry which will be loaded by the antony client and/or antonyHub. The registry is needed to let you hook into our software.
...
From a top level perspective we need create a registry to embed our classes into the di-container, antony provides. To do so we need to write a custom registry for it. To do so, we need to register as a module developer and define our module.
Tl;Dr;
Add the nuget package https://www.nuget.org/packages/antony.Groupware.ExtensionInterfaces/ and https://www.nuget.org/packages/Microsoft.Extensions.DependencyInjection.Abstractions/8.0.0-preview.3.23174.8 (Version 3.1.32) to your project
Write a RegistryClass, decorate your assembly with
AntonyModuleAttribute
and add your ModuleKeyCode Block [assembly: AntonyModule(typeof(MyClassRegistry), ModuleKey = "de.die_groupware.mymodule")]
Decorate your method within you RegistryClass with the
AntonyServiceRegistryAttribute
,Code Block [AntonyServiceRegistry()] public void Register(IServiceCollection services)
ExtensionInterfaces
Antony provides custom interfaces which are used to detect and load your registry. This interfaces comes within an easy to handle nuget package. This package doent doesnt have any other dependencies but .netstandard 2.0. Therefore you should be able to use this in nearly every project. You find this Project on http://nuget.org : https://www.nuget.org/packages/antony.Groupware.ExtensionInterfaces/
The Version of this NuGet Package will correlate with the Version of antony itselfe. A 2.21.130 of antony.Groupware.ExtensionInterfaces will be shipped with the 2.21.130 of antony. We’ll make sure, to minimize breaking changes within this interfaces. Therefore the module written for a specific version will also work on a further version. As you can read here Modules and dependent assemblies might work with another version of this interfaces and your dependencies at runtime.
Info |
---|
Please make sure you uncheck the “SpecificVersion” of this, as the version may change. The content will be the same, unless we report some breaking changes for it. |
Registry
To register you need to specify the assembly attribute AntonyModule
to your assembly. Within this attribute you need to point to a class, containing the registry. Every registry need to be part of a module for licencing. Every module needs to be licencened - even if its free. To define a identify your module you need to register as a Module-Developer within out shopprovide a ModuleKey
.
Info |
---|
We’re sorry! Defining a module is not available at the moment. |
...
At the moment you cannot register a module by yourself. Please let us know, if you want to write a module by mailing us at info(at).die-groupware.de |
The Register
method needs to be annotated with the AntonyServiceRegistry
attribute to be loaded. . You are loaded in every application on default. The signature of this method is provided in the snipped below. In this method you can finally provide your types at the ExtensionPoints you want to integrate to.register within antony’s DI-Container.
We use AutoFac as the DI-Container (https://autofac.org)
Code Block | ||||
---|---|---|---|---|
| ||||
[assembly: AntonyModule(typeof(ZoomModuleAntonyRegistry), ModuleKey = "de.die_groupware.zoom")] namespace antony.Groupware.AddinX.Zoom { public class ZoomModuleAntonyRegistry { [AntonyServiceRegistry()] public void Register(IServiceCollection services) { // ... } } } |
...