JavaScriptObject.cs
上传用户:szgaoree
上传日期:2009-01-05
资源大小:74k
文件大小:2k
源码类别:

Ajax

开发平台:

C#

  1. /*
  2.  * MS 06-04-03 return the correct .Value
  3.  * 
  4.  * 
  5.  */
  6. using System;
  7. using System.Collections;
  8. using System.Collections.Specialized;
  9. namespace AjaxPro
  10. {
  11. /// <summary>
  12. /// Represents a JavaScript ECMA object.
  13. /// </summary>
  14. public class JavaScriptObject : IJavaScriptObject
  15. {
  16. private HybridDictionary list = new HybridDictionary();
  17. private StringCollection keys = new StringCollection();
  18. /// <summary>
  19. /// Initializes a new JavaScript object instance.
  20. /// </summary>
  21. public JavaScriptObject() : base()
  22. {
  23. }
  24. /// <summary>
  25. /// Returns the string representation of the object.
  26. /// </summary>
  27. public string Value
  28. {
  29. get
  30. {
  31. return JavaScriptSerializer.Serialize(list);
  32. }
  33. }
  34. #region IDictionary Members
  35. /// <summary>
  36. /// Returns the object defined for the name of the property.
  37. /// </summary>
  38. public object this[string key]
  39. {
  40. get
  41. {
  42. return list[key];
  43. }
  44. }
  45. /// <summary>
  46. /// Verify if the property does exist in the object.
  47. /// </summary>
  48. /// <param name="key">The name of the property.</param>
  49. /// <returns>Returns true if the property is defined.</returns>
  50. public bool Contains(string key)
  51. {
  52. return list.Contains(key);
  53. }
  54. /// <summary>
  55. /// Adds a new property to the object.
  56. /// </summary>
  57. /// <param name="key">The name of the property.</param>
  58. /// <param name="value">The value of the property.</param>
  59. public void Add(string key, object value)
  60. {
  61. list.Add(key, value);
  62. keys.Add(key);
  63. }
  64. /// <summary>
  65. /// Returns all keys that are used internal for the name of properties.
  66. /// </summary>
  67. public string[] Keys
  68. {
  69. get
  70. {
  71. string[] _keys = new string[keys.Count];
  72. keys.CopyTo(_keys, 0);
  73. return _keys;
  74. }
  75. }
  76. public bool IsFixedSize
  77. {
  78. get
  79. {
  80. return false;
  81. }
  82. }
  83. #endregion
  84. }
  85. }