Esempio n. 1
0
        private IReadOnlyCollection <string> FindPluginsInAssemblies(string[] assemblyPaths)
        {
            var assemblyPluginInfos         = new List <string>();
            var pluginFinderAssemblyContext = new PluginAssemblyLoadingContext(name: "PluginFinderAssemblyContext");

            foreach (var assemblyPath in assemblyPaths)
            {
                var assembly = pluginFinderAssemblyContext.LoadFromAssemblyPath(assemblyPath);
                if (GetPluginTypes(assembly).Any())
                {
                    assemblyPluginInfos.Add(assembly.Location);
                }
            }
            pluginFinderAssemblyContext.Unload();
            return(assemblyPluginInfos);
        }
Esempio n. 2
0
 public PluginHost()
 {
     _pluginAssemblyLoadingContext = new PluginAssemblyLoadingContext("PluginAssemblyContext");
 }