private static void LoadEngines() { ZeusConfig config = ZeusConfig.Current; IZeusScriptingEngine engine; _engines = new Hashtable(); engine = new DotNetScript.DotNetScriptEngine(); _engines.Add(engine.EngineName, engine); engine = new MicrosoftScript.MicrosoftScriptEngine(); _engines.Add(engine.EngineName, engine); string path; Assembly assembly; foreach (string unparsedpath in config.ScriptingEngines) { if (unparsedpath.EndsWith("MicrosoftScriptingEngine.dll", StringComparison.CurrentCultureIgnoreCase) || unparsedpath.EndsWith("DotNetScriptingEngine.dll", StringComparison.CurrentCultureIgnoreCase)) { continue; } else { path = FileTools.ResolvePath(unparsedpath, true); assembly = DynamicAssemblyTools.LoadDynamicAssembly(path); if (assembly != null) { object[] tmp = DynamicAssemblyTools.InstantiateClassesByType(assembly, typeof(IZeusScriptingEngine)); for (int i = 0; i < tmp.Length; i++) { engine = tmp[i] as IZeusScriptingEngine; if (engine != null) { _engines.Add(engine.EngineName, engine); } } } else { throw new ZeusDynamicException(ZeusDynamicExceptionType.ScriptingEnginePluginInvalid, path); } assembly = null; } } }
public MicrosoftScriptExecutioner(MicrosoftScriptEngine engine) { _engine = engine; }
using System;