// X:\jsc.svn\core\ScriptCoreLib\JavaScript\BCLImplementation\System\Runtime\Serialization\FormatterServices.cs /// <summary> /// This is a javascript application. /// </summary> /// <param name="page">HTML document rendered by the web server which can now be enhanced.</param> public Application(IApp page) { var o = new xFoo(); Console.WriteLine(new { o }); //var x = typeof(o); var x = o.GetType(); Console.WriteLine("GetUninitializedObject"); // sometime later var oo = FormatterServices.GetUninitializedObject(x); //var isFoo = oo as xFoo; var isFoo = oo is xFoo; // Uncaught TypeError: Cannot read property 'LgEABvEJMzKFrGX3QxjvzA' of null var om = FormatterServices.GetSerializableMembers(x); var ov = FormatterServices.GetObjectData(o, om); FormatterServices.PopulateObjectMembers(oo, om, ov); // 0:34ms {{ isFoo = true, oo = xFoo: {{ xField1 = field1 {{ Counter = 1 }} }} }} // 0:80ms {{ isFoo = true, oo = xFoo: {{ xField1 = null }} }} // do we still see ToString? Console.WriteLine(new { isFoo, oo }); }
// X:\jsc.svn\core\ScriptCoreLib\JavaScript\BCLImplementation\System\Runtime\Serialization\FormatterServices.cs /// <summary> /// This is a javascript application. /// </summary> /// <param name="page">HTML document rendered by the web server which can now be enhanced.</param> public Application(IApp page) { var o = new xFoo(); Console.WriteLine(new { o }); //var x = typeof(o); var x = o.GetType(); Console.WriteLine("GetUninitializedObject"); // sometime later var oo = FormatterServices.GetUninitializedObject(x); //var isFoo = oo as xFoo; var isFoo = oo is xFoo; // Uncaught TypeError: Cannot read property 'LgEABvEJMzKFrGX3QxjvzA' of null var om = FormatterServices.GetSerializableMembers(x); var ov = FormatterServices.GetObjectData(o, om); FormatterServices.PopulateObjectMembers(oo, om, ov); // 0:34ms {{ isFoo = true, oo = xFoo: {{ xField1 = field1 {{ Counter = 1 }} }} }} // 0:80ms {{ isFoo = true, oo = xFoo: {{ xField1 = null }} }} // do we still see ToString? Console.WriteLine(new { isFoo, oo }); }