/// <summary> /// Creates ScriptRuntime in the current app-domain and initialized according to the the specified settings. /// Creates an instance of host class specified in the setup and associates it with the created runtime. /// Both Runtime and ScriptHost are collocated in the current app-domain. /// </summary> public ScriptRuntime(ScriptRuntimeSetup setup) { ContractUtils.RequiresNotNull(setup, "setup"); // Do this first, so we detect configuration errors immediately DlrConfiguration config = setup.ToConfiguration(); _setup = setup; _host = ReflectionUtils.CreateInstance <ScriptHost>(setup.HostType, setup.HostArguments.ToArray <object>()); ScriptHostProxy hostProxy = new ScriptHostProxy(_host); _manager = new ScriptDomainManager(hostProxy, config); _invariantContext = new InvariantContext(_manager); _io = new ScriptIO(_manager.SharedIO); _engines = new Dictionary <LanguageContext, ScriptEngine>(); bool freshEngineCreated; _globals = new ScriptScope(GetEngineNoLockNoNotification(_invariantContext, out freshEngineCreated), _manager.Globals); // runtime needs to be all set at this point, host code is called _host.SetRuntime(this); }
/// <summary> /// Creates ScriptRuntime in the current app-domain and initialized according to the the specified settings. /// Creates an instance of host class specified in the setup and associates it with the created runtime. /// Both Runtime and ScriptHost are collocated in the current app-domain. /// </summary> public ScriptRuntime(ScriptRuntimeSetup setup) { ContractUtils.RequiresNotNull(setup, "setup"); // Do this first, so we detect configuration errors immediately DlrConfiguration config = setup.ToConfiguration(); _setup = setup; try { _host = (ScriptHost)Activator.CreateInstance(setup.HostType, setup.HostArguments.ToArray <object>()); } catch (TargetInvocationException e) { throw new InvalidImplementationException(Strings.InvalidCtorImplementation(setup.HostType, e.InnerException.Message), e.InnerException); } catch (Exception e) { throw new InvalidImplementationException(Strings.InvalidCtorImplementation(setup.HostType, e.Message), e); } ScriptHostProxy hostProxy = new ScriptHostProxy(_host); _manager = new ScriptDomainManager(hostProxy, config); _invariantContext = new InvariantContext(_manager); _io = new ScriptIO(_manager.SharedIO); _engines = new Dictionary <LanguageContext, ScriptEngine>(); bool freshEngineCreated; _globals = new ScriptScope(GetEngineNoLockNoNotification(_invariantContext, out freshEngineCreated), _manager.Globals); // runtime needs to be all set at this point, host code is called _host.SetRuntime(this); object noDefaultRefs; if (!setup.Options.TryGetValue("NoDefaultReferences", out noDefaultRefs) || Convert.ToBoolean(noDefaultRefs) == false) { LoadAssembly(typeof(string).GetTypeInfo().Assembly); LoadAssembly(typeof(System.Diagnostics.Debug).GetTypeInfo().Assembly); } }
/// <summary> /// Creates ScriptRuntime in the current app-domain and initialized according to the the specified settings. /// Creates an instance of host class specified in the setup and associates it with the created runtime. /// Both Runtime and ScriptHost are collocated in the current app-domain. /// </summary> public ScriptRuntime(ScriptRuntimeSetup setup) { ContractUtils.RequiresNotNull(setup, "setup"); // Do this first, so we detect configuration errors immediately DlrConfiguration config = setup.ToConfiguration(); _setup = setup; _host = ReflectionUtils.CreateInstance<ScriptHost>(setup.HostType, setup.HostArguments.ToArray<object>()); ScriptHostProxy hostProxy = new ScriptHostProxy(_host); _manager = new ScriptDomainManager(hostProxy, config); _invariantContext = new InvariantContext(_manager); _io = new ScriptIO(_manager.SharedIO); _engines = new Dictionary<LanguageContext, ScriptEngine>(); bool freshEngineCreated; _globals = new ScriptScope(GetEngineNoLockNoNotification(_invariantContext, out freshEngineCreated), _manager.Globals); // runtime needs to be all set at this point, host code is called _host.SetRuntime(this); }
/// <summary> /// Creates ScriptRuntime in the current app-domain and initialized according to the the specified settings. /// Creates an instance of host class specified in the setup and associates it with the created runtime. /// Both Runtime and ScriptHost are collocated in the current app-domain. /// </summary> public ScriptRuntime(ScriptRuntimeSetup setup) { ContractUtils.RequiresNotNull(setup, "setup"); // Do this first, so we detect configuration errors immediately DlrConfiguration config = setup.ToConfiguration(); _setup = setup; try { _host = (ScriptHost)Activator.CreateInstance(setup.HostType, setup.HostArguments.ToArray<object>()); } catch (TargetInvocationException e) { throw new InvalidImplementationException(Strings.InvalidCtorImplementation(setup.HostType, e.InnerException.Message), e.InnerException); } catch (Exception e) { throw new InvalidImplementationException(Strings.InvalidCtorImplementation(setup.HostType, e.Message), e); } ScriptHostProxy hostProxy = new ScriptHostProxy(_host); _manager = new ScriptDomainManager(hostProxy, config); _invariantContext = new InvariantContext(_manager); _io = new ScriptIO(_manager.SharedIO); _engines = new Dictionary<LanguageContext, ScriptEngine>(); bool freshEngineCreated; _globals = new ScriptScope(GetEngineNoLockNoNotification(_invariantContext, out freshEngineCreated), _manager.Globals); // runtime needs to be all set at this point, host code is called _host.SetRuntime(this); object noDefaultRefs; if (!setup.Options.TryGetValue("NoDefaultReferences", out noDefaultRefs) || Convert.ToBoolean(noDefaultRefs) == false) { LoadAssembly(typeof(string).Assembly); LoadAssembly(typeof(System.Diagnostics.Debug).Assembly); } }