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

Ajax

开发平台:

C#

  1. using System;
  2. using System.Reflection;
  3. using System.Text;
  4. using System.Collections;
  5. using System.Collections.Specialized;
  6. namespace AjaxPro
  7. {
  8. /// <summary>
  9. /// Provides methods to serialize and deserialize an object that implements IEnumerable.
  10. /// </summary>
  11. public class IEnumerableConverter : IJavaScriptConverter
  12. {
  13. public IEnumerableConverter() : base()
  14. {
  15. }
  16. public override string Serialize(object o)
  17. {
  18. if(!(o is IEnumerable))
  19. throw new NotSupportedException();
  20. StringBuilder sb = new StringBuilder();
  21. IEnumerable enumerable = (IEnumerable)o;
  22. bool b = true;
  23. sb.Append("[");
  24. foreach(object obj in enumerable)
  25. {
  26. if(b){ b = false; }
  27. else{ sb.Append(","); }
  28. sb.Append(JavaScriptSerializer.Serialize(obj));
  29. }
  30. sb.Append("]");
  31. return sb.ToString();
  32. }
  33. public override Type[] SerializableTypes
  34. {
  35. get
  36. {
  37. return new Type[]{typeof(IEnumerable)};
  38. }
  39. }
  40. }
  41. }