摘要

在前面的章節(jié)中,我們看了在單一的綁定條件下Ninject能夠處理依賴類型,就是說,每個服務(wù)類型只綁定到單一的實現(xiàn)類型。然而,有些情況下我們需要綁定一個抽象服務(wù)類型到多個實現(xiàn),這叫多個綁定。多個綁定有兩種情況。第一個是插件模型實現(xiàn),另一個是上下文綁定。這篇文章介紹插件模型實現(xiàn),下一篇文章介紹上下文綁定。

附:程序下載

插件模型讓一個應(yīng)用程序獲得很強的可擴展性而不用修改源代碼。下面的例子,我們將實現(xiàn)一個音樂播放器應(yīng)用程序,使用解碼插件來支持不同的音樂格式。這個應(yīng)用程序使用兩個內(nèi)置的解碼器,也可以添加更多的解碼器來擴展我們播放器支持的格式。請注意為了讓應(yīng)用程序盡可能簡單,許多復(fù)雜的細節(jié)將不被實現(xiàn)。

先定義一個解碼器接口:

1     public interface ICodec2     {3         string Name { get; }4         bool CanDecode(string extension);5         Stream Decode(Stream inStream);6     }

添加兩個解碼器類實現(xiàn)解碼器接口:

Mp3:

Android培訓(xùn),安卓培訓(xùn),手機開發(fā)培訓(xùn),移動開發(fā)培訓(xùn),云培訓(xùn)培訓(xùn)

 1     public class Mp3Codec : ICodec 2     { 3         public string Name 4         { 5             get 6             { 7                 return "MP3 Audio"; 8    &nb
        
		

網(wǎng)友評論