Пример #1
0
        public Process CreateProcess(IHostApplication host, ScriptModuleHandle moduleHandle, ICodeSource src)
        {
            SetGlobalEnvironment(host, src);
            var module = _engine.LoadModuleImage(moduleHandle);

            return(InitProcess(host, src, ref module));
        }
Пример #2
0
        public LoadedModuleHandle LoadModuleImage(ScriptModuleHandle moduleImage)
        {
            var handle = new LoadedModuleHandle();

            handle.Module = new LoadedModule(moduleImage.Module);
            return(handle);
        }
Пример #3
0
 public void NotifyClassAdded(ScriptModuleHandle module, string symbol)
 {
     _externalScripts.Add(new UserAddedScript()
     {
         Type   = UserAddedScriptType.Class,
         Symbol = symbol,
         Module = module
     });
 }
Пример #4
0
        public void NotifyModuleAdded(ScriptModuleHandle module, string symbol)
        {
            var script = new UserAddedScript()
            {
                Type   = UserAddedScriptType.Module,
                Symbol = symbol,
                Module = module
            };

            _externalScripts.Add(script);
            SetGlobalProperty(script.Symbol, null);
        }
Пример #5
0
        public void LoadAndRegister(string typeName, ScriptModuleHandle moduleHandle)
        {
            if (_loadedModules.ContainsKey(typeName))
            {
                return;
            }

            var loadedHandle = _engine.LoadModuleImage(moduleHandle);

            _loadedModules.Add(typeName, loadedHandle.Module);

            TypeManager.RegisterType(typeName, typeof(AttachedScriptsFactory));
        }
        public void LoadAndRegister(string typeName, ScriptModuleHandle moduleHandle)
        {
            if (_loadedModules.ContainsKey(typeName))
            {
                var alreadyLoadedSrc = _loadedModules[typeName].ModuleInfo.Origin;
                var currentSrc       = moduleHandle.Module.ModuleInfo.Origin;

                if (alreadyLoadedSrc != currentSrc)
                {
                    throw new RuntimeException("Type «" + typeName + "» already registered");
                }

                return;
            }

            var loadedHandle = _engine.LoadModuleImage(moduleHandle);

            _loadedModules.Add(typeName, loadedHandle.Module);

            TypeManager.RegisterType(typeName, typeof(AttachedScriptsFactory));
        }
Пример #7
0
 public Process CreateProcess(IHostApplication host, ScriptModuleHandle moduleHandle, ICodeSource src)
 {
     return(CreateProcess(host, moduleHandle.Module, src));
 }
Пример #8
0
 public BinaryCodeSource(ScriptModuleHandle mh)
 {
     _mh = mh;
 }
Пример #9
0
 public void Write(TextWriter output, ScriptModuleHandle module)
 {
     WriteImage(output, module.Module);
 }
Пример #10
0
 public void LoadAndRegister(string typeName, ScriptModuleHandle moduleHandle)
 {
     LoadAndRegister(typeName, moduleHandle.Module);
 }
Пример #11
0
 public void NotifyModuleAdded(ScriptModuleHandle module, string symbol)
 {
     NotifyModuleAdded(module.Module, symbol);
 }
Пример #12
0
     get => new ScriptModuleHandle()
     {
         Module = Image
     };
     set => Image = value.Module;
 }
Пример #13
0
 private ModuleImage FromHandle(ScriptModuleHandle module)
 {
     return(module.Module);
 }
Пример #14
0
 public void Save(ScriptModuleHandle module, Stream output)
 {
     _formatter.Serialize(output, FromHandle(module));
 }