Files
AdamuSw/src/PlugIns/IPlugInContainer.cs
2026-07-14 19:00:35 +03:00

27 lines
939 B
C#

// <copyright file="IPlugInContainer.cs" company="MUnique">
// Licensed under the MIT License. See LICENSE file in the project root for full license information.
// </copyright>
namespace MUnique.OpenMU.PlugIns;
/// <summary>
/// A interface a plugin container (e.g. a proxy object) which manages <typeparamref name="TPlugIn"/>s.
/// </summary>
/// <typeparam name="TPlugIn">The type of the plug in.</typeparam>
public interface IPlugInContainer<TPlugIn>
{
/// <summary>
/// Gets the active plug ins.
/// </summary>
/// <value>
/// The active plug ins.
/// </value>
IEnumerable<TPlugIn> ActivePlugIns { get; }
/// <summary>
/// Adds the plug in to the plugin point.
/// </summary>
/// <param name="plugIn">The plug in.</param>
/// <param name="isActive">If set to <c>true</c>, it's added as an active plugin; Otherwise, not.</param>
void AddPlugIn(TPlugIn plugIn, bool isActive);
}