JsonReaderWriterFactory.cs 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. //------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. //------------------------------------------------------------
  4. namespace System.Runtime.Serialization.Json
  5. {
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Text;
  9. using System.Xml;
  10. using System.IO;
  11. using System.ServiceModel;
  12. using System.Runtime.Serialization.Json;
  13. using System.Runtime.CompilerServices;
  14. [TypeForwardedFrom("System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35")]
  15. public static class JsonReaderWriterFactory
  16. {
  17. const string DefaultIndentChars = " ";
  18. public static XmlDictionaryReader CreateJsonReader(Stream stream, XmlDictionaryReaderQuotas quotas)
  19. {
  20. return CreateJsonReader(stream, null, quotas, null);
  21. }
  22. public static XmlDictionaryReader CreateJsonReader(byte[] buffer, XmlDictionaryReaderQuotas quotas)
  23. {
  24. if (buffer == null)
  25. {
  26. throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("buffer");
  27. }
  28. return CreateJsonReader(buffer, 0, buffer.Length, null, quotas, null);
  29. }
  30. public static XmlDictionaryReader CreateJsonReader(Stream stream, Encoding encoding, XmlDictionaryReaderQuotas quotas, OnXmlDictionaryReaderClose onClose)
  31. {
  32. XmlJsonReader reader = new XmlJsonReader();
  33. reader.SetInput(stream, encoding, quotas, onClose);
  34. return reader;
  35. }
  36. public static XmlDictionaryReader CreateJsonReader(byte[] buffer, int offset, int count, XmlDictionaryReaderQuotas quotas)
  37. {
  38. return CreateJsonReader(buffer, offset, count, null, quotas, null);
  39. }
  40. public static XmlDictionaryReader CreateJsonReader(byte[] buffer, int offset, int count, Encoding encoding, XmlDictionaryReaderQuotas quotas, OnXmlDictionaryReaderClose onClose)
  41. {
  42. XmlJsonReader reader = new XmlJsonReader();
  43. reader.SetInput(buffer, offset, count, encoding, quotas, onClose);
  44. return reader;
  45. }
  46. public static XmlDictionaryWriter CreateJsonWriter(Stream stream)
  47. {
  48. return CreateJsonWriter(stream, Encoding.UTF8, true);
  49. }
  50. public static XmlDictionaryWriter CreateJsonWriter(Stream stream, Encoding encoding)
  51. {
  52. return CreateJsonWriter(stream, encoding, true);
  53. }
  54. public static XmlDictionaryWriter CreateJsonWriter(Stream stream, Encoding encoding, bool ownsStream)
  55. {
  56. return CreateJsonWriter(stream, encoding, ownsStream, false);
  57. }
  58. public static XmlDictionaryWriter CreateJsonWriter(Stream stream, Encoding encoding, bool ownsStream, bool indent)
  59. {
  60. return CreateJsonWriter(stream, encoding, ownsStream, indent, JsonReaderWriterFactory.DefaultIndentChars);
  61. }
  62. public static XmlDictionaryWriter CreateJsonWriter(Stream stream, Encoding encoding, bool ownsStream, bool indent, string indentChars)
  63. {
  64. XmlJsonWriter writer = new XmlJsonWriter(indent, indentChars);
  65. writer.SetOutput(stream, encoding, ownsStream);
  66. return writer;
  67. }
  68. }
  69. }