public void RegisterType(Type target, StaticRegistrationInfoAttribute info) { if (target.HasBase(typeof(GraphicEffect))) { foreach (var name in AssemblyRegister.GetInfo(target)) { Effects.Add(name.Name, target); } } }
/// <summary> /// 注销一个资源提供器 /// </summary> /// <param name="plugin">要注销的提供器</param> public static void Unregister(IResourceProvider plugin) { foreach (var name in AssemblyRegister.GetInfo(plugin.GetType(), plugin)) { Providers.TryRemove(name.Name); } }
/// <summary> /// 注册一个资源提供器 /// <para>相同名称的提供器会覆盖之前注册的提供器</para> /// </summary> /// <param name="plugin">要注册的提供器</param> public static void Register([NotNull] IResourceProvider plugin) { foreach (var name in AssemblyRegister.GetInfo(plugin.GetType(), plugin)) { Providers.TryRemove(name.Name); Providers.Add(name.Name, plugin); } }
/// <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); } }
static EffectPlugin() { AssemblyRegister.Load(Assembly.GetExecutingAssembly()); }
static PluginManager() { AssemblyRegister.Load(Assembly.GetExecutingAssembly()); }
static ResourceManager() { AssemblyRegister.Load(Assembly.GetExecutingAssembly()); }