public static void SpawnTo <T>(this Type alias, object[] KnownTypes, Action <T, IHTMLElement> h) where T : class, new() { if (KnownTypes == null) { throw new Exception("GetKnownTypes is null"); } ScriptCoreLib.JavaScript.Native.Spawn(alias.Name, i => { if (i.nodeName == "SCRIPT") { var tag = (IHTMLScript)i; var text = i.text; if (tag.type == "text/xml") { var doc = IXMLDocument.Parse(text); h(doc.Deserialize <T>(KnownTypes), i); } else if (tag.type == "text/json") { // reflection info will be lost here? h((T)(object)Expando.FromJSON(text), i); } } } ); }
public static string CallFunction(this IHTMLEmbedFlash e, string method, string[] args) { var xml = new ScriptCoreLib.JavaScript.DOM.XML.IXMLDocument("invoke"); xml.documentElement.setAttribute("name", method); xml.documentElement.setAttribute("returntype", "xml"); var _arguments = xml.createElement("arguments"); foreach (var item in args) { if (item == null) { _arguments.appendChild(xml.createElement("null")); } else { var _string = xml.createElement("string"); _string.appendChild(xml.createTextNode(item)); _arguments.appendChild(_string); } } xml.documentElement.appendChild(_arguments); var xml_string = xml.ToXMLString(); var responseText = e.CallFunction( xml_string ); var responseValue = IXMLDocument.Parse(responseText).documentElement.text; return(responseValue); }
public static __XDocument Parse(string text) { var InternalValue = IXMLDocument.Parse(text); return(InternalValue); }