예제 #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="PluginLoader"/> class.
        /// </summary>
        public PluginLoader()
        {
            this.DirectoryCatalogues = new List <DirectoryCatalog>();

            var directoryInfo = PluginUtilities.PluginDirectoryExists(out _);

            if (directoryInfo.Exists)
            {
                this.GetManifests();
                this.GetDisabledPlugins();

                foreach (var manifest in this.ManifestsList.Where(m => !this.DisabledPlugins.Contains(m.ProjectGuid)))
                {
                    var path = Path.Combine(directoryInfo.FullName, manifest.Name);

                    if (Directory.Exists(path))
                    {
                        this.LoadPlugins(path);
                    }
                }
            }
        }
예제 #2
0
 /// <summary>
 /// Sets the <see cref="ManifestsList"/> property
 /// </summary>
 private void GetManifests()
 {
     this.ManifestsList = PluginUtilities.GetPluginManifests();
 }