elliebot/src/EllieBot/Common/Marmalade/MarmaladeServiceProvider.cs

24 lines
No EOL
724 B
C#

using System.Runtime.CompilerServices;
namespace Ellie.Marmalade;
public class MarmaladeServiceProvider : IServiceProvider
{
private readonly IServiceProvider _ellieServices;
private readonly IServiceProvider _marmaladeServices;
public MarmaladeServiceProvider(IServiceProvider ellieServices, IServiceProvider marmaladeServices)
{
_ellieServices = ellieServices;
_marmaladeServices = marmaladeServices;
}
[MethodImpl(MethodImplOptions.NoInlining)]
public object? GetService(Type serviceType)
{
if (!serviceType.Assembly.IsCollectible)
return _ellieServices.GetService(serviceType);
return _marmaladeServices.GetService(serviceType);
}
}