摘要
提供者是特殊的工廠類,Ninject使用它來實例化解析類型。任何時候我們綁定一個服務類型到一個組件,我們都隱式地關聯(lián)那個服務類型到一個可以實例化那個組件的提供者。這個隱藏的提供者被稱為StandardProvider,是一個通用的工廠,他可以創(chuàng)建每一個給定類型的實例。盡管我們可以經(jīng)常依賴StandardProvider而不用對他在背后做了什么費心,Ninject也允許我們創(chuàng)建和注冊我們自己自定義的提供者,只要我們需要自定義這個下面的激活過程:
1 Bind<IService>().ToProvider<MyService>(); 2 public class MyServiceProvider : Provider<MyService> 3 { 4 protected override MyService CreateInstance(IContext context) 5 { 6 return new MyService(); 7 } 8 }
盡管繼承這個Provider<T>類是推薦