/// <summary> /// 注销一个插件 /// </summary> /// <param name="plugin">要注销的插件</param> public static void Unregister(IVisualNovelPlugin plugin) { foreach (var name in AssemblyRegister.GetInfo(plugin.GetType(), plugin)) { if (!Plugins.ContainsKey(name.Name)) { continue; } plugin.OnUnregister(false); Plugins.Remove(name.Name); } }
/// <summary> /// 注册一个插件 /// <para>相同名称的插件会覆盖之前注册的插件</para> /// </summary> /// <param name="plugin">要注册的插件</param> public static void Register([NotNull] IVisualNovelPlugin plugin) { foreach (var name in AssemblyRegister.GetInfo(plugin.GetType(), plugin)) { if (Plugins.ContainsKey(name.Name)) { plugin.OnUnregister(true); Plugins.Remove(name.Name); } plugin.OnRegister(); Plugins.Add(name.Name, plugin); } }
/// <summary> /// 检查指定插件是否已经注册 /// </summary> /// <param name="plugin">目标插件</param> /// <returns></returns> public static bool Contains(IVisualNovelPlugin plugin) { return(Plugins.ContainsValue(plugin)); }