private static void AddHostSymbols(ref VBScriptEngine vbscriptEngine) { vbscriptEngine.AddHostObject("CSExtendedHost", new ExtendedHostFunctions()); vbscriptEngine.AddHostObject("CSHost", new HostFunctions()); var htc = new HostTypeCollection(); foreach (var assembly in new string[] { "mscorlib", "System", "System.Core", "System.Data" /*, "RestSharp", "WebDriver", "WebDriver.Support" */ }) { htc.AddAssembly(assembly); } if (Settings.ContainsKey("/ASSEMBLIES")) { var assemblies = Settings["/ASSEMBLIES"].ToString().Split(','); foreach (var assembly in assemblies) { System.Reflection.Assembly assem; try { assem = System.Reflection.Assembly.LoadFrom(assembly); htc.AddAssembly(assem); } catch (Exception e) { Console.WriteLine(e.Message); } } } vbscriptEngine.AddHostObject("CS", htc); }
private static void Attach(string dllPath, string name = "") { var htc = new HostTypeCollection(); try { //var assem = System.Reflection.Assembly.LoadFrom(dllPath); var assem = Assembly.Load(AssemblyName.GetAssemblyName(dllPath)); htc.AddAssembly(assem); if (name.Length == 0) { name = assem.FullName.Split(',')[0]; } vbscriptEngine.AddHostObject(name, htc); //FIXME checkout the hosttypes Console.WriteLine($"Attached {dllPath} as {name}"); } catch (ReflectionTypeLoadException rtle) { foreach (var item in rtle.LoaderExceptions) { Console.WriteLine(item.Message); } } catch (FileNotFoundException fnfe) { Console.WriteLine(fnfe.Message); } catch (Exception e) { Console.WriteLine(e.Message); } }