摘要

提供者是特殊的工廠類,Ninject使用它來實(shí)例化解析類型。任何時(shí)候我們綁定一個(gè)服務(wù)類型到一個(gè)組件,我們都隱式地關(guān)聯(lián)那個(gè)服務(wù)類型到一個(gè)可以實(shí)例化那個(gè)組件的提供者。這個(gè)隱藏的提供者被稱為StandardProvider,是一個(gè)通用的工廠,他可以創(chuàng)建每一個(gè)給定類型的實(shí)例。盡管我們可以經(jīng)常依賴StandardProvider而不用對(duì)他在背后做了什么費(fèi)心,Ninject也允許我們創(chuàng)建和注冊(cè)我們自己自定義的提供者,只要我們需要自定義這個(gè)下面的激活過程:

復(fù)制代碼
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 }
復(fù)制代碼

盡管繼承這個(gè)Provider<T>類是推薦