题
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”类的实例成员的一部分。
不隶属于 StackOverflow