Reflection.aspx 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title>Reflection</title>
  5. </head>
  6. <body>
  7. <form id="Main" runat="server">
  8. <asp:ScriptManager runat="server" ID="scriptManager" />
  9. </form>
  10. <div>
  11. <p>This example tests the Demo.Trees.GrannySmith class
  12. against various reflection APIs.</p>
  13. <input id="Button1" value="Check Type"
  14. type="button" onclick="return OnButton1Click()" />
  15. <input id="Button2" value="Check Inheritance"
  16. type="button" onclick="return OnButton2Click()" />
  17. <input id="Button3" value="Check Interface"
  18. type="button" onclick="return OnButton3Click()" />
  19. </div>
  20. <script type="text/javascript" src="Interface.js"></script>
  21. <script type="text/javascript" language="JavaScript">
  22. var g = new Demo.Trees.GrannySmith();
  23. var gt = Demo.Trees.GrannySmith;
  24. var a = new Array(
  25. Demo.Trees.Apple,
  26. Demo.Trees.Tree,
  27. Demo.Trees.Pine,
  28. Demo.Trees.IFruitTree,
  29. Sys.IContainer);
  30. function OnButton1Click()
  31. {
  32. for (var i = 0; i < a.length; i ++)
  33. {
  34. if (a[i].isInstanceOfType(g))
  35. {
  36. alert(gt.getName() + " is a " + a[i].getName() + ".");
  37. }
  38. else alert(gt.getName() + " is not a " + a[i].getName() + ".");
  39. }
  40. }
  41. function OnButton2Click()
  42. {
  43. for (var i = 0; i < a.length; i ++)
  44. {
  45. if (gt.inheritsFrom(a[i]))
  46. {
  47. alert(gt.getName() + " inherits from " + a[i].getName() + ".");
  48. }
  49. else alert(gt.getName() + " does not inherit from " + a[i].getName() + ".");
  50. }
  51. }
  52. function OnButton3Click()
  53. {
  54. for (var i = 0; i < a.length; i ++)
  55. {
  56. if (Type.isInterface(a[i]))
  57. {
  58. if (gt.implementsInterface(a[i]))
  59. {
  60. alert(gt.getName() + " implements the " + a[i].getName() + " interface.");
  61. }
  62. else alert(gt.getName() + " does not implement the " + a[i].getName() + " interface.");
  63. }
  64. else alert(a[i].getName() + " is not an interface.");
  65. }
  66. }
  67. </script>
  68. </body>
  69. </html>