为什么不 Ninject 在 A Class 中新建对象

Why Won't Ninject New Up Objects In A Class

My Setup:
Visual Studio 2013
Web Forms/MVC project
C#
Ninject 3.2.0.0
Entity Framework

我有一个 Web Forms/MVC 混合项目,它使用 Ninject 作为其 IoC 容器。直到今天,我对 Ninject 没有任何问题。我 运行 遇到的问题是,每当我使用 class 时,我都无法 Ninject 来更新一些对象。这是一些有效的代码:

// Master1.master
namespace TestCode
{
    public partial class Master1 : MasterPage
    {
        [Inject]
        public FooController Foo { get; set; }

        protected void Page_Load(object sender, EventArgs e)
        {
            // Do some setup logic.
            Foo.Bar();
        }
    }
}

下面是一些无法使用 class:

的代码
// Master1.master
namespace TestCode
{
    public partial class Master1 : MasterPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            new Wrapper().SomeMethod();
        }
    }
}

// Wrapper.cs
namespace TestCode
{
    public class Wrapper
    {
        [Inject]
        public FooController Foo { get; set; }

        public void SomeMethod()
        {
            // Do some setup logic.
            Foo.Bar();
        }
    }
}

我的问题是当我执行 SomeMethod() 时,Foo 为空。为什么会这样,我该怎么做才能让 Ninject 更新 Foo?

好的 - 我现在开始工作了。感谢大家!我需要像这样添加绑定我的 NinjectWebCommon class:

public static class NinjectWebCommon 
{
    private static readonly Bootstrapper Bootstrapper = new Bootstrapper();

    public static void Start() 
    {
        DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule));
        DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule));
        Bootstrapper.Initialize(CreateKernel);
    }

    public static void Stop()
    {
        Bootstrapper.ShutDown();
    }

    private static IKernel CreateKernel()
    {
        var kernel = new StandardKernel();
        kernel.Bind<Func<IKernel>>().ToMethod(ctx => () => new Bootstrapper().Kernel);
        kernel.Bind<IHttpModule>().To<HttpApplicationInitializationHttpModule>();


        // Needed to add this binding.
        kernel.Bind<IWraper>().To<Wraper>().InRequestScope();


        RegisterServices(kernel);
        GlobalConfiguration.Configuration.DependencyResolver = new NinjectDependencyResolver(kernel);

        return kernel;
    }
}