1 //------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation. All rights reserved.
3 //------------------------------------------------------------
5 namespace System.Runtime.Serialization.Json
8 using System.Collections.Generic;
13 using System.ServiceModel;
15 using System.Runtime.Serialization.Json;
16 using System.Runtime.CompilerServices;
18 [TypeForwardedFrom("System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35")]
19 public static class JsonReaderWriterFactory
21 const string DefaultIndentChars = " ";
23 public static XmlDictionaryReader CreateJsonReader(Stream stream, XmlDictionaryReaderQuotas quotas)
25 return CreateJsonReader(stream, null, quotas, null);
28 public static XmlDictionaryReader CreateJsonReader(byte[] buffer, XmlDictionaryReaderQuotas quotas)
32 throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("buffer");
35 return CreateJsonReader(buffer, 0, buffer.Length, null, quotas, null);
38 public static XmlDictionaryReader CreateJsonReader(Stream stream, Encoding encoding, XmlDictionaryReaderQuotas quotas, OnXmlDictionaryReaderClose onClose)
40 XmlJsonReader reader = new XmlJsonReader();
41 reader.SetInput(stream, encoding, quotas, onClose);
45 public static XmlDictionaryReader CreateJsonReader(byte[] buffer, int offset, int count, XmlDictionaryReaderQuotas quotas)
47 return CreateJsonReader(buffer, offset, count, null, quotas, null);
50 public static XmlDictionaryReader CreateJsonReader(byte[] buffer, int offset, int count, Encoding encoding, XmlDictionaryReaderQuotas quotas, OnXmlDictionaryReaderClose onClose)
52 XmlJsonReader reader = new XmlJsonReader();
53 reader.SetInput(buffer, offset, count, encoding, quotas, onClose);
57 public static XmlDictionaryWriter CreateJsonWriter(Stream stream)
59 return CreateJsonWriter(stream, Encoding.UTF8, true);
62 public static XmlDictionaryWriter CreateJsonWriter(Stream stream, Encoding encoding)
64 return CreateJsonWriter(stream, encoding, true);
67 public static XmlDictionaryWriter CreateJsonWriter(Stream stream, Encoding encoding, bool ownsStream)
69 return CreateJsonWriter(stream, encoding, ownsStream, false);
72 public static XmlDictionaryWriter CreateJsonWriter(Stream stream, Encoding encoding, bool ownsStream, bool indent)
74 return CreateJsonWriter(stream, encoding, ownsStream, indent, JsonReaderWriterFactory.DefaultIndentChars);
77 public static XmlDictionaryWriter CreateJsonWriter(Stream stream, Encoding encoding, bool ownsStream, bool indent, string indentChars)
79 XmlJsonWriter writer = new XmlJsonWriter(indent, indentChars);
80 writer.SetOutput(stream, encoding, ownsStream);