NinjectDependencyResolver中的GetService没有被命中

时间:2014-10-17 13:47:52

标签: asp.net-mvc-5 ninject

我正在使用自定义依赖关系解析器 - NinjectDependencyResolver:IDependencyResolver。

以下是代码:

using System;
using System.Collections.Generic;
using System.Web.Mvc;
using EssentialTools.Models;
using Ninject;

namespace EssentialTools.Infrastructure
{
public class NinjectDependencyResolver : IDependencyResolver
{
    private IKernel kernel;

    public NinjectDependencyResolver(IKernel kernelParam)
    {
        kernel = kernelParam;
        AddBindings();
    }

    public object GetService(Type serviceType)
    {
        return kernel.TryGet(serviceType);
    }

    public IEnumerable<object> GetServices(Type serviceType)
    {
        return kernel.GetAll(serviceType);
    }

    private void AddBindings()
    {
        kernel.Bind<IValueCalculator>().To<LinqValueCalculator>();
    }
}
}

我在NinjectWebCommon中注册了解析器。 而且我知道我的AddBindings受到了冲击,因为我可以设置断点并点击并检查。 或者将调试语句写入输出窗口。

但我不认为我的GetService受到了打击。 我无法达到断点,我无法将调试语句写入窗口。

我之前已经设置了这个,并且我总是能够在GetServiceType(类型serviceType)中点击断点,并且看到serviceType是HomeController只是为了证明它正在工作。

我知道它已注册,因为AddBindings正在工作,如果我将它注释掉它就会错误。

此外,如果我注释掉GetService,那么我还没有实现它的错误。但即使实施不使用。它就像使用默认设置一样。

我在配置中遗漏了什么?

0 个答案:

没有答案