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