众所皆知,在 google-chrome 浏览器中,我们在 JavaScript 的”全局域“定义任何的成员(例:方法、变量)是可以通过”全局域“的”window“变量获取的,而”nsjsdotnet“可能在很多人的眼中,被认为不支持这类型的访问,但事实是”nsjsdotnet“在设计时就认为这是没有必要的。
你可以把 nsjsdotnet 中每个虚拟机的 Global 实例,附加到 Global 实例的属性上,即可,而它不应是由”nsjsdotnet“框架涉及并且提供支持,而是由应用此框架的开发人员自行制定。
”window“是”浏览器内核框架“约定俗成定义的代替源,但这一切都不等于”nsjsdotnet“的框架体系需要遵照这一切,而且它并不符合”nsjsdotnet“框架的定义
namespace TECHMARS.VM
{
using nsjsdotnet;
class Program
{
public class JavaScriptVirtualMachine : NSJSVirtualMachine
{
protected override void InitializationFramework()
{
base.InitializationFramework();
base.Join((sender, e) =>
{
NSJSObject global = base.Global;
global.Set("window2", global);
});
}
}
static void Main(string[] args)
{
JavaScriptVirtualMachine nsjs = new JavaScriptVirtualMachine();
nsjs.Run(@"
window2.alert('hello nsjsdotnet!');
");
}
}
}