Difference between revisions of "HowTo:Create UBIK Module"
m |
m |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 12: | Line 12: | ||
The module must implement the <code>UBIK.Injection.IUbikModule</code> interface and has to be registered for MEF composition by defining the export contract via an attribute. | The module must implement the <code>UBIK.Injection.IUbikModule</code> interface and has to be registered for MEF composition by defining the export contract via an attribute. | ||
<source lang="csharp"> | <source lang="csharp"> | ||
− | [Export(typeof(UBIK.Injection. | + | [Export(typeof(UBIK.Injection.IUbikPlugin))] |
public class TestModule : UBIK.Injection.IUbikModule | public class TestModule : UBIK.Injection.IUbikModule | ||
Line 18: | Line 18: | ||
} | } | ||
</source> | </source> | ||
+ | |||
+ | |||
=== Interface: IUbikInjectionMetaData === | === Interface: IUbikInjectionMetaData === | ||
Line 80: | Line 82: | ||
public class TestModule : UBIK.Injection.IUbikModule | public class TestModule : UBIK.Injection.IUbikModule | ||
{ | { | ||
+ | public ISystemDefinitionProvider SystemDefinitionsProvider | ||
+ | { | ||
+ | get | ||
+ | { | ||
+ | return TestSysDefProvider.Instance; | ||
+ | } | ||
+ | } | ||
+ | public void Initialize(UBIKEnvironment environment) | ||
+ | { | ||
+ | } | ||
+ | |||
+ | public bool Initialized() | ||
+ | { | ||
+ | return true; | ||
+ | } | ||
+ | |||
+ | public void Terminate() | ||
+ | { | ||
+ | } | ||
+ | |||
+ | public List<ModuleInfo> DependencyModules | ||
+ | { | ||
+ | get; | ||
+ | } = new List<ModuleInfo>() | ||
+ | { | ||
+ | new ModuleInfo() | ||
+ | { | ||
+ | ID = Guid.Parse("A4FF45D7-20C7-451A-A58A-1001B5B1EA7B"), | ||
+ | Name = "MRO Plugin" | ||
+ | } | ||
+ | } | ||
} | } | ||
</source> | </source> | ||
+ | |||
+ | ==== To be implemented for IUbikModule ==== | ||
+ | {| class="wikitable" | width = "100%" | ||
+ | |- | ||
+ | ! Name !! Description | ||
+ | |- | ||
+ | | SystemDefinitionsProvider || The instance of the SystemDefinitions for the respective module is provided. | ||
+ | |- | ||
+ | | Initialize || Initializes the module. | ||
+ | |- | ||
+ | | Initialized || Returns true when the plugin is initialized | ||
+ | |- | ||
+ | | Terminate || Terminates the UBIKEnvironment if it has been initialized. | ||
+ | |- | ||
+ | | DependencyModules || Returns the module information for which it has a dependency. | ||
+ | |- | ||
+ | |} | ||
<headertabs /> | <headertabs /> | ||
Line 88: | Line 138: | ||
== See also == | == See also == | ||
* [[Injection_Management]] | * [[Injection_Management]] | ||
+ | * [[HowTo:Provide_system_definitions_with_a_custom_plugin]] | ||
[[Category:Injecting|Create UBIK Module]] | [[Category:Injecting|Create UBIK Module]] |
Latest revision as of 11:16, 25 November 2024
UBIK® Modules are loaded dynamically into the UBIK® Kernel by the UBIK® Injection Management based on the Microsoft Extensibility Framework (MEF).