1
我在asp.mvc項目中設置了「Ninject」。每個控制器都有它的依賴類,它工作正常。但我在mvc項目中有一個類不是控制器。這是一個擴展「MembershipProvider」的簡單類(因爲我已經創建了自定義成員資格),並且需要在其中注入「UserRepository」類。 在NinjectControlelrFactory我賓特它:如何使用ninject在nonController類中注入類
private void AddBindings()
{
ninjectKernel.Bind<IUserRepository>().To<UserRepository>().WithConstructorArgument(
"connectionString", ConfigurationManager.ConnectionStrings["connStr"].ConnectionString);
}
但如何從非控制器類怎麼做呢? PS 我無法通過構造函數注入。
我有一些解決方案,但我不知道它是如何「乾淨」的是:
using (IKernel kernel = new StandardKernel())
{
kernel.Bind<IUserRepository>()
.To<UserRepository>()
.WithConstructorArgument("connectionString", "ttttttttttttt");
//var tc = kernel.Get<IUserRepository>();
this.userRepository = kernel.Get<IUserRepository>();
}
由於這會幫助我。但你能檢查我更新的問題嗎?我寫了一些東西,它可以工作,但我不確定它是獲取依賴類的有效方法嗎? – 1110
如果你的'MembershipProvider'這個代碼 - 它不是依賴注入,因爲你在這裏使用你的實現類型'UserRepository',它已經依賴於它。 – Samich
是的,你是對的。我改變了代碼屬性注入,但我總是得到'對象引用未設置'我可以; t數字爲什麼:( – 1110