1
我正在使用Ninject(一個MVC Web應用程序)開發我的第一個項目,並且對Ninject的正確/最佳使用有疑問。有關Ninject實現的建議
我已經設置了一個NinjectModule,它將接口綁定到具體類,但現在我想在我的代碼中創建接口對象的實例。爲了實現這一點,我寫了下面的方法:
public class NinjectControllerFactory : DefaultControllerFactory {
private class MyServices : NinjectModule {
...
}
public static IMyRepository GetMyRepository()
{
IKernel kernel = new StandardKernel(new MyServices());
return kernel.Get<IMyRepository>();
}
}
,這似乎很好地工作......
IMyRepository tempDB = ControllerFactory.GetRoomarRepository();
我的問題是,這種正確的/最佳的方式來實現的結果,我尋找?我猜我擔心創建內核實例的開銷。
謝謝Remo。提前道歉,但我想我可能會嘗試你的耐心......假設我有一個接口,並且我有兩個類來實現該接口。在我的代碼中,我想創建一個簡單的控制檯應用程序(例如),該接口的一個實例。你/你/你應該根據NinjectModule從字面上定義一個類,然後創建一個Ninject StandardKernel對象並將其用於Get()具體實例嗎? – Neilski 2011-03-11 15:45:35
通常沒有在應用程序的引導程序中配置一個內核。它儘可能少使用。許多應用程序只需一次調用即可創建所有必要的服務。在MVC3的情況下,你根本不需要任何呼叫。 – 2011-03-11 16:40:31