public void Add(ScriptDrivenObject target, string methodName) { var exist = _handlers.Exists(x => ReferenceEquals(x.Target, target) && x.MethodName.ToLowerInvariant() == methodName.ToLowerInvariant()); if (!exist) { _handlers.Add(new Handler { Target = target, MethodName = methodName, Method = target.GetMethodExecutor(methodName) }); } }
public void InitExternalLibrary(ScriptingEngine runtime, ExternalLibraryDef library) { var loadedObjects = new ScriptDrivenObject[library.Modules.Count]; int i = 0; foreach (var module in library.Modules) { var loaded = runtime.LoadModuleImage(module.Image); var instance = runtime.CreateUninitializedSDO(loaded); SetGlobalProperty(module.Symbol, instance); module.InjectOrder = _injectedProperties.FindProperty(module.Symbol); loadedObjects[i++] = instance; } _externalLibs.Add(library); loadedObjects.ForEach(runtime.InitializeSDO); }
public void CompileEnvironmentModules(RuntimeEnvironment env) { var scripts = env.GetUserAddedScripts().Where(x => x.Type == UserAddedScriptType.Module && env.GetGlobalProperty(x.Symbol) == null) .ToArray(); if (scripts.Length > 0) { var loadedObjects = new ScriptDrivenObject[scripts.Length]; for (var i = 0; i < scripts.Length; i++) { var script = scripts[i]; var loaded = LoadModuleImage(script.Image); var instance = CreateUninitializedSDO(loaded); env.SetGlobalProperty(script.Symbol, instance); loadedObjects[i] = instance; } foreach (var instance in loadedObjects) { InitializeSDO(instance); } } }
public void InitializeSDO(ScriptDrivenObject sdo) { sdo.Initialize(_machine); }
public CustomAuthRequirement(ScriptDrivenObject provider) { _provider = provider; }
public void Remove(ScriptDrivenObject target, string methodName) { _handlers.RemoveAll(x => ReferenceEquals(x.Target, target) && x.MethodName.ToLowerInvariant() == methodName.ToLowerInvariant()); }