src/ZKEACMS/Event/EventManager.cs
(完整代码) 1KB/* http://www.zkea.net/
* Copyright (c) ZKEASOFT. All rights reserved.
* http://www.zkea.net/licenses */
using System;
using System.Collections.Generic;
using System.Text;
namespace ZKEACMS.Event
{
public class EventManager : IEventManager
{
static Dictionary<string, List<Type>> Handlers = new Dictionary<string, List<Type>>();
private readonly IServiceProvider _serviceProvider;
public EventManager(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
}
public void Trigger(string eventName, object entity)
{
Trigger(new EventArg { Name = eventName }, entity);
}
public void Trigger(EventArg e, object entity)
{
if (Handlers.ContainsKey(e.Name))
{
foreach (Type item in Handlers[e.Name])
{
(_serviceProvider.GetService(item) as IEventHandler)?.Handle(entity, e);
}
}
}
internal static void RegistEvent(string name, Type type)
{
if (!Handlers.ContainsKey(name))
{
Handlers[name] = new List<Type>();
}
Handlers[name].Add(type);
}
}
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。