예제 #1
0
		internal PluginManager(string pluginDir)
		{
			_pluginDir = pluginDir;

			string[] alternateCacheLocations;
			_loader = new PluginLoader(pluginDir, GetMetadataCacheFilePath(out alternateCacheLocations), alternateCacheLocations);
			_backgroundAssemblyLoader = new BackgroundAssemblyLoader(this);
		}
예제 #2
0
		private Assembly[] LoadFoundPlugins(string[] pluginFileList)
		{
			Platform.CheckForNullReference(pluginFileList, "pluginFileList");

			PluginLoader loader = new PluginLoader();

			// Load the legitimate plugins into the primary AppDomain
			foreach (string pluginFile in pluginFileList)
			{
				Assembly pluginAssembly = loader.LoadPlugin(pluginFile);
				string pluginName = Path.GetFileName(pluginFile);
				EventsHelper.Fire(_pluginProgressEvent, this, 
					new PluginLoadedEventArgs(String.Format(SR.FormatLoadingPlugin, pluginName), pluginAssembly));
			}

			return loader.PluginAssemblies;
		}