Ninject看起来很棒,所以我想在我的项目中使用它。不幸的是,我仍然在努力做最琐碎的约束力。的[进样]属性编译就好,但是编译器找不到“绑定”命令:

using System;
using Ninject.Core;
using Ninject.Core.Binding;

namespace NinjectTest
{
    public interface IFoo
    {
        void DoSomething();
    }

    public class Foo : IFoo
    {
        public void DoSomething()
        {
            throw new NotImplementedException();
        }
    }

    public class Bar
    {
        [Inject] private IFoo theFoo;

        public Bar()
        {
            Bind<IFoo>().To<Foo>(); //Compiler Error: "The name 'Bind' does not exist in the current context"
        }
    }
}

可能是错误怎么回事?

有帮助吗?

解决方案

绑定方法是在Ninject StandardModule类的方法。你需要继承类能够绑定。

下面是一个简单的示例:

using System; 
using System.Collections.Generic; 
using System.Text; 
using Ninject.Core;

namespace Forecast.Domain.Implementation 
{
    public class NinjectBaseModule : StandardModule
    {
        public override void Load()
        {
            Bind<ICountStocks>().To<Holding>();
            Bind<IOwn>().To<Portfolio>();
            Bind<ICountMoney>().To<Wallet>();
        }
    } 
}

其他提示

在绑定方法在ModuleBase定义 - 你应该从这个继承类,或者甚至更好,从StandardModule

我不知道Ninject,而是先看看我看到的是,“绑定”的方法不是“酒吧”类或它们的基类的成员。 Propably你需要一些实例与“绑定”的方式或静态类,静态的“绑定”的方法。

快速google搜索后,我认为“绑定”的方法是“InlineMethod”类的实例成员的一部分。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top