程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> VSX-5 VSXMusic 編碼聽音樂,vsx-5vsxmusic

VSX-5 VSXMusic 編碼聽音樂,vsx-5vsxmusic

編輯:C#入門知識

VSX-5 VSXMusic 編碼聽音樂,vsx-5vsxmusic


給VS寫個擴展來聽音樂的說法,緣來已久,這兩天做了個初版,使用豆瓣FM,先發出來。

插件現在只做了VS2013的,別的版本有待下一步支持。

現在暫時只有一個Adornment(就是那個有封面的),一個Margin(編輯器最下面,准備用來放歌詞,沒有做),一個Menu(最上面的菜單),一個ToolBar(工具欄啊,就那個提示播放的)。

只完成了播放功能,切換頻道准備明天做,登錄功能也要後續完善。

關於豆瓣FM的WPF程序,做過的人也不少,這裡對兩個項目有所參考並繼續參考,在這裡列出:煙灰灰 和 kfstorm

現在比較反感DI、IoC,但是不知不覺又用了。

其實做這種VS擴展很簡單,和擴展有關的東西很少,應用程序應該怎麼做,這裡就怎麼做,只不過寫的程序不是運行主體罷了。

但是後續要做的還不少,首先Adornment這個東西,不應該在每個TextView中包含一個,也就是說應該一個VS只有這一個出現,所以這裡不應該使用IWpfTextViewCreationListener接口。

話又說回來,擴展是對於VS擴展的,同時打開幾個VS很常見,得想想辦法怎麼做成統一控制之類的,用remoting什麼的。

還需要一個Tool Window做主界面,需要Options Page,還要在快速啟動(Ctrl + Q)那裡弄個搜索歌曲,加上歌詞、用戶、快捷鍵支持等,後續可能還會增加播放本地音樂等功能,想想也有不少。

 

又說回MEF,在原來VSX項目中我又自己維護了一個IoC容器,但是VS擴展本來就是使用MEF,翻看了不少項目,終於找到如下代碼片段:

var componentModel = (IComponentModel)_serviceProvider.GetService(typeof(SComponentModel));
var player = componentModel.DefaultExportProvider.GetExportedValue<IPlayer>();

其中_serviceProvider就是IServiceProvider接口對象,VSX中最常見的Package就是一個IServiceProvider。

當然,在使用Export導出的類,也就是MEF組件中,是直接可以使用Import特征來注入的。

 

這個項目不會花費我太多功夫,只是興趣所致。希望同樣有興趣的人可以繼續做下去。

這裡給出源碼:https://github.com/NanQi/VSXMusic

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved