public void RegisterExport(MethodBase methodBase, bool bindToInstance, string script) { var ei = new ExportInfo { MethodBase = methodBase, Script = script }; if (bindToInstance) { var ti = FindTypeInfo(methodBase.DeclaringType); if (ti == null) { throw new InvalidOperationException("no type info for exported instance's type"); } if (ti.InstanceExports == null) { ti.InstanceExports = new List <ExportInfo>(); } ti.InstanceExports.Add(ei); } else { staticExports.Add(ei); InteropContextManager.WithAllRuntimes (runtime => runtime.BindExportedMethod(methodBase, null, script)); } }
public InteropContext(Runtime runtime) { InteropContextManager.PushRuntime(runtime); }
public void Dispose() { InteropContextManager.PopRuntime(); GC.SuppressFinalize(this); }