[英]Building a plugin system on WP8
假設我有這種結構:
|
|-Plugins
|-Plugin1.cs
|-Plugin2.cs
|-Plugin3.cs
|-PluginBase.cs
|-PluginList.cs
其中Plugins
文件夾中的每個類都從PluginBase.cs
擴展。
我需要我的PluginList.cs
導出可用插件的列表,以便應用程序可以使用它來使用戶選擇他想要的插件。
現在,由於這是我第一次使用C#,因此我不知道它是如何工作的。
在線搜索時,我發現了有關Managed Extensibility Framework的一些信息,但是我不確定這是否是我所需要的。
我非常原始的想法是掃描Plugin目錄並列出它們,但是我不知道C#是否等效於Java的Class
類,因此我還沒有嘗試過。
由於我在談論移動應用程序,因此我也希望它盡可能快,所以也許這種掃描方法不是最佳方法。
任何想法?
編輯:
因此,最好的辦法是使用MEF2,但我無法使其正常工作,因為Visual Studio不允許我將程序集添加到項目中(嘗試使用Nuget並手動添加dll)。
除了MEF2,還有其他選擇嗎?
實際上,MEF正是您所需要的。 它是專門為插件或可擴展體系結構設計的,並提供了您嘗試實現的一系列基本功能。
托管擴展框架(MEF)是.NET的組合層,可提高大型應用程序的靈活性,可維護性和可測試性。 MEF可以用於第三方插件的可擴展性,也可以將松散耦合的類似插件的體系結構的優點帶給常規應用程序。
該鏈接提供了一個很好的介紹和基本示例,以解釋MEF的工作原理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.