2018-11-23 07:03:32 +00:00
|
|
|
|
using System;
|
2013-05-05 21:24:33 +00:00
|
|
|
|
using Microsoft.AspNet.SignalR;
|
2016-12-09 02:37:46 +00:00
|
|
|
|
using Microsoft.AspNet.SignalR.Infrastructure;
|
2013-05-10 23:53:50 +00:00
|
|
|
|
using NzbDrone.Common.Composition;
|
2013-05-05 21:24:33 +00:00
|
|
|
|
|
2013-09-11 06:33:47 +00:00
|
|
|
|
namespace NzbDrone.SignalR
|
2013-05-05 21:24:33 +00:00
|
|
|
|
{
|
2018-04-21 05:52:26 +00:00
|
|
|
|
public class SignalRDependencyResolver : DefaultDependencyResolver
|
2013-05-05 21:24:33 +00:00
|
|
|
|
{
|
2013-05-10 23:53:50 +00:00
|
|
|
|
private readonly IContainer _container;
|
2013-05-05 21:24:33 +00:00
|
|
|
|
|
2013-05-10 23:53:50 +00:00
|
|
|
|
public static void Register(IContainer container)
|
2013-05-05 21:24:33 +00:00
|
|
|
|
{
|
2018-04-21 05:52:26 +00:00
|
|
|
|
GlobalHost.DependencyResolver = new SignalRDependencyResolver(container);
|
2013-05-05 21:24:33 +00:00
|
|
|
|
}
|
|
|
|
|
|
2018-04-21 05:52:26 +00:00
|
|
|
|
private SignalRDependencyResolver(IContainer container)
|
2013-05-05 21:24:33 +00:00
|
|
|
|
{
|
|
|
|
|
_container = container;
|
2019-06-30 04:58:54 +00:00
|
|
|
|
var performanceCounterManager = new RadarrPerformanceCounterManager();
|
2016-12-09 02:37:46 +00:00
|
|
|
|
Register(typeof(IPerformanceCounterManager), () => performanceCounterManager);
|
2013-05-05 21:24:33 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override object GetService(Type serviceType)
|
|
|
|
|
{
|
2018-04-21 05:52:26 +00:00
|
|
|
|
// Microsoft.AspNet.SignalR.Infrastructure.AckSubscriber is not registered in our internal contaiiner,
|
|
|
|
|
// but it still gets treated like it is (possibly due to being a concrete type).
|
|
|
|
|
|
|
|
|
|
var fullName = serviceType.FullName;
|
|
|
|
|
|
|
|
|
|
if (fullName == "Microsoft.AspNet.SignalR.Infrastructure.AckSubscriber" ||
|
|
|
|
|
fullName == "Newtonsoft.Json.JsonSerializer")
|
|
|
|
|
{
|
|
|
|
|
return base.GetService(serviceType);
|
|
|
|
|
}
|
|
|
|
|
|
2013-05-10 23:53:50 +00:00
|
|
|
|
if (_container.IsTypeRegistered(serviceType))
|
|
|
|
|
{
|
|
|
|
|
return _container.Resolve(serviceType);
|
|
|
|
|
}
|
2013-05-05 21:24:33 +00:00
|
|
|
|
|
2013-05-10 23:53:50 +00:00
|
|
|
|
return base.GetService(serviceType);
|
2013-05-05 21:24:33 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2018-11-23 07:03:32 +00:00
|
|
|
|
}
|