|
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------
namespace System.Runtime.Serialization.Json
{
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.IO;
using System.ServiceModel;
using System.Runtime.Serialization.Json;
using System.Runtime.CompilerServices;
[TypeForwardedFrom("System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35")]
public static class JsonReaderWriterFactory
{
const string DefaultIndentChars = " ";
public static XmlDictionaryReader CreateJsonReader(Stream stream, XmlDictionaryReaderQuotas quotas)
{
return CreateJsonReader(stream, null, quotas, null);
}
public static XmlDictionaryReader CreateJsonReader(byte[] buffer, XmlDictionaryReaderQuotas quotas)
{
if (buffer == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("buffer");
}
return CreateJsonReader(buffer, 0, buffer.Length, null, quotas, null);
}
public static XmlDictionaryReader CreateJsonReader(Stream stream, Encoding encoding, XmlDictionaryReaderQuotas quotas, OnXmlDictionaryReaderClose onClose)
{
XmlJsonReader reader = new XmlJsonReader();
reader.SetInput(stream, encoding, quotas, onClose);
return reader;
}
public static XmlDictionaryReader CreateJsonReader(byte[] buffer, int offset, int count, XmlDictionaryReaderQuotas quotas)
{
return CreateJsonReader(buffer, offset, count, null, quotas, null);
}
public static XmlDictionaryReader CreateJsonReader(byte[] buffer, int offset, int count, Encoding encoding, XmlDictionaryReaderQuotas quotas, OnXmlDictionaryReaderClose onClose)
{
XmlJsonReader reader = new XmlJsonReader();
reader.SetInput(buffer, offset, count, encoding, quotas, onClose);
return reader;
}
public static XmlDictionaryWriter CreateJsonWriter(Stream stream)
{
return CreateJsonWriter(stream, Encoding.UTF8, true);
}
public static XmlDictionaryWriter CreateJsonWriter(Stream stream, Encoding encoding)
{
return CreateJsonWriter(stream, encoding, true);
}
public static XmlDictionaryWriter CreateJsonWriter(Stream stream, Encoding encoding, bool ownsStream)
{
return CreateJsonWriter(stream, encoding, ownsStream, false);
}
public static XmlDictionaryWriter CreateJsonWriter(Stream stream, Encoding encoding, bool ownsStream, bool indent)
{
return CreateJsonWriter(stream, encoding, ownsStream, indent, JsonReaderWriterFactory.DefaultIndentChars);
}
public static XmlDictionaryWriter CreateJsonWriter(Stream stream, Encoding encoding, bool ownsStream, bool indent, string indentChars)
{
XmlJsonWriter writer = new XmlJsonWriter(indent, indentChars);
writer.SetOutput(stream, encoding, ownsStream);
return writer;
}
}
}
|