Skip to content
Version 2.11.0
↓ Get the launcher

IPluginExchange interface

The sanctioned inter-plugin communication channel. One plugin Provides an implementation of a contract interface; another Consumes it — without the two plugins referencing each other (the framework is their only shared reference). The framework brokers purely by Type and never references any contract type, so this surface stays plugin-agnostic — it is the ONE generic extension point; specific contracts live in a shared contracts assembly (e.g. Stellar.PluginContracts), never here. Late-bind: Consume at use-time (not construction) so plugin load order does not matter.

public interface IPluginExchange
name description
Consume<T>() Get the registered provider of contract T, or null when no plugin provides it (e.g. the providing plugin is not installed) — callers fall back accordingly.
Provide<T>(…) Register implementation as the provider of contract T. If two plugins provide the same contract, the last to register wins.