标签:eof sharp class sass eth fun mst from asc
设置全局变量
setTitleDelegate = SetTitle; alertDelegate = ShowMessage; context = runtime.CreateContext(); JavaScriptContext.Current = context; JavaScriptValue globalObject = JavaScriptValue.GlobalObject; windowId = JavaScriptPropertyId.FromString("window"); JavaScriptValue window = JavaScriptValue.CreateObject(); var type = this.GetType(); var ps = type.GetProperties(); foreach (var p in ps) { if (p.GetMethod != null && p.GetMethod.IsPublic) { var v = p.GetValue(this) ?? ""; window.SetProperty(JavaScriptPropertyId.FromString(p.Name.ToLower()), JavaScriptValue.FromString(v.ToString()), true); } } globalObject.SetProperty(windowId, window, true); globalObject.SetProperty(JavaScriptPropertyId.FromString("set_Title"), JavaScriptValue.CreateFunction(setTitleDelegate, IntPtr.Zero), true); globalObject.SetProperty(JavaScriptPropertyId.FromString("alert"), JavaScriptValue.CreateFunction(alertDelegate, IntPtr.Zero), true);
回调函数
private JavaScriptValue SetTitle(JavaScriptValue callee, bool isConstructCall, JavaScriptValue[] arguments, ushort argumentCount, IntPtr callbackData) { for (uint index = 1; index < argumentCount; index++) { Title = (arguments[index].ConvertToString().ToString()); } return JavaScriptValue.Invalid; }
调用代码
string script = scripts.Text; JavaScriptValue window = JavaScriptValue.GlobalObject.GetProperty(windowId); var jv = JavaScriptContext.RunScript(script); var type = this.GetType(); var ps = type.GetProperties(); foreach (var p in ps) { if (p.SetMethod != null && p.SetMethod.IsPublic) { var id = JavaScriptPropertyId.FromString(p.Name.ToLower()); if (id != JavaScriptPropertyId.Invalid) { var v = window.GetProperty(id); if (p.PropertyType.IsAssignableFrom(typeof(string))) { p.SetValue(this, v.ToString()); } } } }
标签:eof sharp class sass eth fun mst from asc
原文地址:http://www.cnblogs.com/icoolno1/p/7534771.html