Artemis Artemis
Artemis Artemis

Search Results for

    Class Plugin

    Represents a plugin

    Inheritance
    object
    CorePropertyChanged
    Plugin
    Implements
    IDisposable
    Namespace: Artemis.Core
    Assembly: Artemis.Core.dll
    Syntax
    public class Plugin : CorePropertyChanged, IDisposable

    Properties

    Assembly

    The assembly the plugin code lives in

    Declaration
    public Assembly? Assembly { get; }
    Property Value
    Type Description
    Assembly

    Bootstrapper

    Gets the plugin bootstrapper

    Declaration
    public PluginBootstrapper? Bootstrapper { get; }
    Property Value
    Type Description
    PluginBootstrapper

    ConfigurationDialog

    Gets or sets a configuration dialog for this plugin that is accessible in the UI under Settings > Plugins

    Declaration
    public IPluginConfigurationDialog? ConfigurationDialog { get; set; }
    Property Value
    Type Description
    IPluginConfigurationDialog

    Container

    Gets the IOC container of the plugin, only use this for advanced IOC operations, otherwise see Resolve(Type, params object?[]) and Resolve<T>(params object?[])

    Declaration
    public IContainer? Container { get; }
    Property Value
    Type Description
    IContainer

    Directory

    The plugins root directory

    Declaration
    public DirectoryInfo Directory { get; }
    Property Value
    Type Description
    DirectoryInfo

    Features

    Gets a read-only collection of all features this plugin provides

    Declaration
    public ReadOnlyCollection<PluginFeatureInfo> Features { get; }
    Property Value
    Type Description
    ReadOnlyCollection<PluginFeatureInfo>

    Guid

    Gets the plugin GUID

    Declaration
    public Guid Guid { get; }
    Property Value
    Type Description
    Guid

    Info

    Gets the plugin info related to this plugin

    Declaration
    public PluginInfo Info { get; }
    Property Value
    Type Description
    PluginInfo

    IsEnabled

    Indicates whether the user enabled the plugin or not

    Declaration
    public bool IsEnabled { get; }
    Property Value
    Type Description
    bool

    Profilers

    Gets a read-only collection of profiles running on the plugin

    Declaration
    public ReadOnlyCollection<Profiler> Profilers { get; }
    Property Value
    Type Description
    ReadOnlyCollection<Profiler>

    Methods

    Dispose()

    Declaration
    public void Dispose()

    Dispose(bool)

    Releases the unmanaged resources used by the object and optionally releases the managed resources.

    Declaration
    protected virtual void Dispose(bool disposing)
    Parameters
    Type Name Description
    bool disposing

    true to release both managed and unmanaged resources; false to release only unmanaged resources.

    GetFeatureInfo<T>()

    Looks up the feature info the feature of type T

    Declaration
    public PluginFeatureInfo GetFeatureInfo<T>() where T : PluginFeature
    Returns
    Type Description
    PluginFeatureInfo

    Feature info of the feature

    Type Parameters
    Name Description
    T

    The type of feature to find

    GetFeature<T>()

    Looks up the instance of the feature of type T

    Declaration
    public T? GetFeature<T>() where T : PluginFeature
    Returns
    Type Description
    T

    If found, the instance of the feature

    Type Parameters
    Name Description
    T

    The type of feature to find

    GetProfiler(string)

    Gets a profiler with the provided name, if it does not yet exist it will be created.

    Declaration
    public Profiler GetProfiler(string name)
    Parameters
    Type Name Description
    string name

    The name of the profiler

    Returns
    Type Description
    Profiler

    A new or existing profiler with the provided name

    OnDisabled()

    Invokes the Disabled event

    Declaration
    protected virtual void OnDisabled()

    OnEnabled()

    Invokes the Enabled event

    Declaration
    protected virtual void OnEnabled()

    OnFeatureAdded(PluginFeatureInfoEventArgs)

    Invokes the FeatureAdded event

    Declaration
    protected virtual void OnFeatureAdded(PluginFeatureInfoEventArgs e)
    Parameters
    Type Name Description
    PluginFeatureInfoEventArgs e

    OnFeatureRemoved(PluginFeatureInfoEventArgs)

    Invokes the FeatureRemoved event

    Declaration
    protected virtual void OnFeatureRemoved(PluginFeatureInfoEventArgs e)
    Parameters
    Type Name Description
    PluginFeatureInfoEventArgs e

    Register<TImplementation>(PluginServiceScope)

    Registers implementation type TImplementation with itself as service type.

    Declaration
    public void Register<TImplementation>(PluginServiceScope scope = PluginServiceScope.Singleton)
    Parameters
    Type Name Description
    PluginServiceScope scope

    The scope in which the service should live, if you are not sure leave it on singleton.

    Type Parameters
    Name Description
    TImplementation

    The implementation of the service to register.

    Register<TService, TImplementation>(PluginServiceScope)

    Registers service of TService type implemented by TImplementation type.

    Declaration
    public void Register<TService, TImplementation>(PluginServiceScope scope = PluginServiceScope.Singleton) where TImplementation : TService
    Parameters
    Type Name Description
    PluginServiceScope scope

    The scope in which the service should live, if you are not sure leave it on singleton.

    Type Parameters
    Name Description
    TService

    The service to register.

    TImplementation

    The implementation of the service to register.

    RemoveProfiler(Profiler)

    Removes a profiler from the plugin

    Declaration
    public void RemoveProfiler(Profiler profiler)
    Parameters
    Type Name Description
    Profiler profiler

    The profiler to remove

    Resolve(Type, params object?[])

    Gets an instance of the specified service using the plugins dependency injection container.

    Declaration
    public object Resolve(Type type, params object?[] arguments)
    Parameters
    Type Name Description
    Type type

    The type of service to resolve.

    object[] arguments

    Arguments to supply to the service.

    Returns
    Type Description
    object

    An instance of the service.

    See Also
    Resolve<T>(params object?[])

    ResolveRelativePath(string?)

    Resolves the relative path provided in the path parameter to an absolute path

    Declaration
    public string? ResolveRelativePath(string? path)
    Parameters
    Type Name Description
    string path

    The path to resolve

    Returns
    Type Description
    string

    An absolute path pointing to the provided relative path

    Resolve<T>(params object?[])

    Gets an instance of the specified service using the plugins dependency injection container.

    Declaration
    public T Resolve<T>(params object?[] arguments)
    Parameters
    Type Name Description
    object[] arguments

    Arguments to supply to the service.

    Returns
    Type Description
    T

    An instance of the service.

    Type Parameters
    Name Description
    T

    The service to resolve.

    See Also
    Resolve(Type, params object?[])

    ToString()

    Declaration
    public override string ToString()
    Returns
    Type Description
    string
    Overrides
    object.ToString()

    Events

    Disabled

    Occurs when the plugin is disabled

    Declaration
    public event EventHandler? Disabled
    Event Type
    Type Description
    EventHandler

    Enabled

    Occurs when the plugin is enabled

    Declaration
    public event EventHandler? Enabled
    Event Type
    Type Description
    EventHandler

    FeatureAdded

    Occurs when an feature is loaded and added to the plugin

    Declaration
    public event EventHandler<PluginFeatureInfoEventArgs>? FeatureAdded
    Event Type
    Type Description
    EventHandler<PluginFeatureInfoEventArgs>

    FeatureRemoved

    Occurs when an feature is disabled and removed from the plugin

    Declaration
    public event EventHandler<PluginFeatureInfoEventArgs>? FeatureRemoved
    Event Type
    Type Description
    EventHandler<PluginFeatureInfoEventArgs>

    Implements

    IDisposable
    Content is available under the PolyForm Noncommercial License, by Artemis RGB.