diff options
| author | Nyanmisaka <nst799610810@gmail.com> | 2020-04-06 20:13:05 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-04-06 20:13:05 +0800 |
| commit | 645363810370504361cecd5ce4c529343ed28833 (patch) | |
| tree | 524ce17ae7d83415b6f8fffac58efbaf806db137 /Emby.Server.Implementations/Services/ServiceController.cs | |
| parent | 20ac3c36e22739402923a9fd5b2ac06f9c604c5a (diff) | |
| parent | 0cd7cd611e6118b8dac31cf3c6861509f2b33c56 (diff) | |
Merge pull request #1 from jellyfin/master
Diffstat (limited to 'Emby.Server.Implementations/Services/ServiceController.cs')
| -rw-r--r-- | Emby.Server.Implementations/Services/ServiceController.cs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/Emby.Server.Implementations/Services/ServiceController.cs b/Emby.Server.Implementations/Services/ServiceController.cs index d963f9043..e24a95dbb 100644 --- a/Emby.Server.Implementations/Services/ServiceController.cs +++ b/Emby.Server.Implementations/Services/ServiceController.cs @@ -3,14 +3,27 @@ using System.Collections.Generic; using System.Threading.Tasks; using Emby.Server.Implementations.HttpServer; using MediaBrowser.Model.Services; +using Microsoft.Extensions.Logging; namespace Emby.Server.Implementations.Services { public delegate object ActionInvokerFn(object intance, object request); + public delegate void VoidActionInvokerFn(object intance, object request); public class ServiceController { + private readonly ILogger _logger; + + /// <summary> + /// Initializes a new instance of the <see cref="ServiceController"/> class. + /// </summary> + /// <param name="logger">The <see cref="ServiceController"/> logger.</param> + public ServiceController(ILogger<ServiceController> logger) + { + _logger = logger; + } + public void Init(HttpListenerHost appHost, IEnumerable<Type> serviceTypes) { foreach (var serviceType in serviceTypes) @@ -21,6 +34,13 @@ namespace Emby.Server.Implementations.Services public void RegisterService(HttpListenerHost appHost, Type serviceType) { + // Make sure the provided type implements IService + if (!typeof(IService).IsAssignableFrom(serviceType)) + { + _logger.LogWarning("Tried to register a service that does not implement IService: {ServiceType}", serviceType); + return; + } + var processedReqs = new HashSet<Type>(); var actions = ServiceExecGeneral.Reset(serviceType); |
