AngleSharp by AngleSharp

<PackageReference Include="AngleSharp" Version="0.9.9.2" />

 EventFactory

sealed class EventFactory : IEventFactory
Provides string to Event instance creation mappings.
using AngleSharp.Dom.Events; using System; using System.Collections.Generic; namespace AngleSharp.Services.Default { internal sealed class EventFactory : IEventFactory { private delegate Event Creator (); private readonly Dictionary<string, Creator> creators = new Dictionary<string, Creator>(StringComparer.OrdinalIgnoreCase) { { "event", () => new Event() }, { "uievent", () => new UiEvent() }, { "focusevent", () => new FocusEvent() }, { "keyboardevent", () => new KeyboardEvent() }, { "mouseevent", () => new MouseEvent() }, { "wheelevent", () => new WheelEvent() }, { "customevent", () => new CustomEvent() } }; public EventFactory() { AddEventAlias("events", "event"); AddEventAlias("htmlevents", "event"); AddEventAlias("uievents", "uievent"); AddEventAlias("keyevents", "keyboardevent"); AddEventAlias("mouseevents", "mouseevent"); } private void AddEventAlias(string aliasName, string aliasFor) { creators.Add(aliasName, creators[aliasFor]); } public Event Create(string name) { Creator value = null; if (name != null && creators.TryGetValue(name, out value)) return value(); return null; } } }