Files
mixtape/zero.Core/Communication/Handlers/IHandlerHolder.cs
T
2021-12-02 13:43:04 +01:00

32 lines
572 B
C#

using Microsoft.Extensions.DependencyInjection;
namespace zero.Communication;
public class HandlerHolder : IHandlerHolder
{
IServiceProvider Services { get; }
public HandlerHolder(IServiceProvider services)
{
Services = services;
}
public T Get<T>() where T : IHandler
{
return Services.GetService<T>();
}
public IEnumerable<T> GetAll<T>() where T : IHandler
{
return Services.GetService<IEnumerable<T>>();
}
}
public interface IHandlerHolder
{
T Get<T>() where T : IHandler;
IEnumerable<T> GetAll<T>() where T : IHandler;
}