Unity IoC не внедряет зависимости в Web API Controller

Я очень плохо знаком с использованием Unity, но моя проблема в том, что всякий раз, когда я вызываю свой веб-сервис, я получаю исключение, в котором говорится, что

«Убедитесь, что у контроллера есть открытый конструктор без параметров»

Я следовал за несколькими уроками, и я все еще получаю ту же проблему.

В функции Register моего класса WebApiConfig я имею

var container = new UnityContainer();
container.RegisterType<IValidator, Validator>(new HierarchicalLifetimeManager());
config.DependencyResolver = new UnityResolver(container);

Вот мой класс UnityResolver

using Microsoft.Practices.Unity;
using System;
using System.Collections.Generic;
using System.Web.Http.Dependencies;

public class UnityResolver : IDependencyResolver
{
    protected IUnityContainer container;

    public UnityResolver(IUnityContainer container)
    {
        if (container == null)
        {
            throw new ArgumentNullException("container");
        }
        this.container = container;
    }

    public object GetService(Type serviceType)
    {
        try
        {
            return container.Resolve(serviceType);
        }
        catch (ResolutionFailedException)
        {
            return null;
        }
    }

    public IEnumerable<object> GetServices(Type serviceType)
    {
        try
        {
            return container.ResolveAll(serviceType);
        }
        catch (ResolutionFailedException)
        {
            return new List<object>();
        }
    }

    public IDependencyScope BeginScope()
    {
        var child = container.CreateChildContainer();
        return new UnityResolver(child);
    }

    public void Dispose()
    {
        container.Dispose();
    }
}

Я не зарегистрировал никаких контроллеров, так как в каждом уроке утверждается, что мне это не нужно. Вот мой фактический контроллер

public class Controller: ApiController
{
    private IValidator _validator;

    public Controller(IValidator validator)
    {
        this._validator = validator;
    }

    [HttpPost]
    public void ReceiveIPN()
    {

    }
}

У кого-нибудь есть идеи относительно того, что я могу делать неправильно? Спасибо!

РЕДАКТИРОВАТЬ 1: Вот «реализация» класса Validator. Это довольно пусто, потому что я не хотел вводить ошибку здесь, пока я не решил проблему Unity.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;


public class Validator: IValidator
{
    public bool ValidateIPN(string body)
    {
        throw new NotImplementedException();
    }
}

РЕДАКТИРОВАТЬ 2: Вот полный ответ об ошибке, которую я получаю, когда пытаюсь вызвать маршрут веб-API с помощью Fiddler

{"message": "Произошла ошибка.", "exceptionMessage": "Произошла ошибка при попытке создать контроллер типа 'Controller'. Убедитесь, что у контроллера есть открытый конструктор без параметров.", "exceptionType": «System.InvalidOperationException», «stackTrace»: «at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create (запрос HttpRequestMessage, HttpControllerDescriptor controllerDescriptor, тип controllerType) в классе System.Web.Http System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext () "," innerException ": {" message ":" Произошла ошибка. "," ExceptionMessage ":" Тип "Project.Controller" не имеет значения по умолчанию конструктор "," exceptionType ":" System.ArgumentException "," stackTrace ":" в System.Linq.Expressions.Expression.New (тип type) в System.Web.Http.Internal.TypeActivator.Create [TBase] (тип instanceType ) в System.Web.Http.Dispatcher.DefaultHttpControllerActivator.GetInstanceO rActivator (запрос HttpRequestMessage, Type controllerType, Func`1 & activator) в System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create (запрос HttpRequestMessage, HttpControllerDescriptor controllerDescriptor, Тип controller} Тип)

Ответы на вопрос(1)

Ваш ответ на вопрос