[C#]外掛程式庫設計

摘要:[C#]外掛程式庫設計

大概有幾個重點,首先要定義出外掛的通用介面(interface),然後做個PluginWrapper來做載入的動作

接下來就是如何叫用這個功能,最好弄個List記住載入了哪些外掛,這樣才能呼叫...
外掛要寫一些呼叫的條件,這樣才知道要用哪支外掛!

 

private void LoadPlugins()
      {
          string pluginPath = Application.StartupPath + @"\plugins"; 

          if (Directory.Exists(pluginPath))
          {
              string[] files = Directory.GetFiles(pluginPath, "*.dll");//找出所有在外掛資料夾的外掛 

              foreach (string file in files)
              {
                  try
                  {
                      Assembly plugin = Assembly.LoadFile(file); //這個就是載入外掛的進入點 

                      Type[] types = plugin.GetTypes(); 

                      foreach (Type type in types)
                      {
                          try
                          {
                              IBrowserPlugin browserPlugin =
                                  plugin.CreateInstance(type.ToString()) as IBrowserPlugin; 
                           }
                            catch (Exception) { }
                       }
                 }
        catch (Exception) { }
    }
} 

public interface IBrowserPlugin
   {
       string Name { get; }
       string Info { get; }
   }