You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.5 KiB
47 lines
1.5 KiB
7 years ago
|
using System;
|
||
12 years ago
|
using Microsoft.AspNet.SignalR;
|
||
8 years ago
|
using Microsoft.AspNet.SignalR.Infrastructure;
|
||
12 years ago
|
using NzbDrone.Common.Composition;
|
||
12 years ago
|
|
||
11 years ago
|
namespace NzbDrone.SignalR
|
||
12 years ago
|
{
|
||
7 years ago
|
public class SignalRDependencyResolver : DefaultDependencyResolver
|
||
12 years ago
|
{
|
||
12 years ago
|
private readonly IContainer _container;
|
||
12 years ago
|
|
||
12 years ago
|
public static void Register(IContainer container)
|
||
12 years ago
|
{
|
||
7 years ago
|
GlobalHost.DependencyResolver = new SignalRDependencyResolver(container);
|
||
12 years ago
|
}
|
||
|
|
||
7 years ago
|
private SignalRDependencyResolver(IContainer container)
|
||
12 years ago
|
{
|
||
|
_container = container;
|
||
8 years ago
|
var performanceCounterManager = new LidarrPerformanceCounterManager();
|
||
8 years ago
|
Register(typeof(IPerformanceCounterManager), () => performanceCounterManager);
|
||
12 years ago
|
}
|
||
|
|
||
|
public override object GetService(Type serviceType)
|
||
|
{
|
||
7 years ago
|
// 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);
|
||
|
}
|
||
|
|
||
12 years ago
|
if (_container.IsTypeRegistered(serviceType))
|
||
|
{
|
||
|
return _container.Resolve(serviceType);
|
||
|
}
|
||
12 years ago
|
|
||
12 years ago
|
return base.GetService(serviceType);
|
||
12 years ago
|
}
|
||
|
}
|
||
7 years ago
|
}
|
||
7 years ago
|
|