Пример #1
0
        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);
        }
Пример #2
0
        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);
            }
        }