Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Server / System / Data / Services / Serializers / IndentedTextWriter.cs / 1305376 / IndentedTextWriter.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Provides a writer implementation for Json format // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Serializers { using System; using System.Diagnostics; using System.Globalization; using System.IO; using System.Text; ///Writes the Json text in indented format. ////// There are many more methods implemented in previous versions /// of this file to handle more type and newline cases. /// internal sealed class IndentedTextWriter : TextWriter { ///writer to which Json text needs to be written private TextWriter writer; ///keeps track of the indentLevel private int indentLevel; ///keeps track of pending tabs private bool tabsPending; ///string representation of tab private string tabString; ////// Creates a new instance of IndentedTextWriter over the given text writer /// /// writer which IndentedTextWriter wraps public IndentedTextWriter(TextWriter writer) : base(CultureInfo.InvariantCulture) { this.writer = writer; this.tabString = " "; } ///Returns the Encoding for the given writer public override Encoding Encoding { get { return this.writer.Encoding; } } ///Returns the new line character public override string NewLine { get { return this.writer.NewLine; } } ///returns the current indent level public int Indent { get { return this.indentLevel; } set { Debug.Assert(value >= 0, "value >= 0"); if (value < 0) { value = 0; } this.indentLevel = value; } } ///Closes the underlying writer public override void Close() { // This is done to make sure we don't accidently close the underlying stream. // Since we don't own the stream, we should never close it. throw new NotImplementedException(); } ///Clears all the buffer of the current writer public override void Flush() { this.writer.Flush(); } ////// Writes the given string value to the underlying writer /// /// string value to be written public override void Write(string s) { this.OutputTabs(); this.writer.Write(s); } ////// Writes the given char value to the underlying writer /// /// char value to be written public override void Write(char value) { this.OutputTabs(); this.writer.Write(value); } ////// Writes the trimmed text if minimizeWhiteSpeace is set to true /// /// string value to be written public void WriteTrimmed(string text) { this.Write(text); } ///Writes the tabs depending on the indent level private void OutputTabs() { if (this.tabsPending) { for (int i = 0; i < this.indentLevel; i++) { this.writer.Write(this.tabString); } this.tabsPending = false; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Provides a writer implementation for Json format // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Serializers { using System; using System.Diagnostics; using System.Globalization; using System.IO; using System.Text; ///Writes the Json text in indented format. ////// There are many more methods implemented in previous versions /// of this file to handle more type and newline cases. /// internal sealed class IndentedTextWriter : TextWriter { ///writer to which Json text needs to be written private TextWriter writer; ///keeps track of the indentLevel private int indentLevel; ///keeps track of pending tabs private bool tabsPending; ///string representation of tab private string tabString; ////// Creates a new instance of IndentedTextWriter over the given text writer /// /// writer which IndentedTextWriter wraps public IndentedTextWriter(TextWriter writer) : base(CultureInfo.InvariantCulture) { this.writer = writer; this.tabString = " "; } ///Returns the Encoding for the given writer public override Encoding Encoding { get { return this.writer.Encoding; } } ///Returns the new line character public override string NewLine { get { return this.writer.NewLine; } } ///returns the current indent level public int Indent { get { return this.indentLevel; } set { Debug.Assert(value >= 0, "value >= 0"); if (value < 0) { value = 0; } this.indentLevel = value; } } ///Closes the underlying writer public override void Close() { // This is done to make sure we don't accidently close the underlying stream. // Since we don't own the stream, we should never close it. throw new NotImplementedException(); } ///Clears all the buffer of the current writer public override void Flush() { this.writer.Flush(); } ////// Writes the given string value to the underlying writer /// /// string value to be written public override void Write(string s) { this.OutputTabs(); this.writer.Write(s); } ////// Writes the given char value to the underlying writer /// /// char value to be written public override void Write(char value) { this.OutputTabs(); this.writer.Write(value); } ////// Writes the trimmed text if minimizeWhiteSpeace is set to true /// /// string value to be written public void WriteTrimmed(string text) { this.Write(text); } ///Writes the tabs depending on the indent level private void OutputTabs() { if (this.tabsPending) { for (int i = 0; i < this.indentLevel; i++) { this.writer.Write(this.tabString); } this.tabsPending = false; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ScriptMethodAttribute.cs
- CurrentChangedEventManager.cs
- MessageSecurityOverMsmqElement.cs
- XPathAncestorIterator.cs
- DataView.cs
- DataControlFieldCollection.cs
- InternalResources.cs
- ReferencedAssembly.cs
- MobilePage.cs
- BaseValidator.cs
- RangeContentEnumerator.cs
- DashStyle.cs
- TrustSection.cs
- RetrieveVirtualItemEventArgs.cs
- BindingsCollection.cs
- StringWriter.cs
- XmlIgnoreAttribute.cs
- XmlSchemaChoice.cs
- Size3DValueSerializer.cs
- PersonalizablePropertyEntry.cs
- ManagedIStream.cs
- LinqToSqlWrapper.cs
- FormatSettings.cs
- SqlFormatter.cs
- HttpCapabilitiesSectionHandler.cs
- Opcode.cs
- EventProviderWriter.cs
- shaperfactoryquerycachekey.cs
- AccessText.cs
- MouseOverProperty.cs
- Attribute.cs
- ViewGenResults.cs
- GC.cs
- NativeMethodsCLR.cs
- WebPartEventArgs.cs
- WSSecurityOneDotZeroReceiveSecurityHeader.cs
- IfAction.cs
- XmlDesigner.cs
- SoapSchemaExporter.cs
- OleCmdHelper.cs
- ConditionalWeakTable.cs
- FileLogRecordEnumerator.cs
- PassportIdentity.cs
- DragEvent.cs
- JulianCalendar.cs
- TableCell.cs
- NetworkStream.cs
- DriveInfo.cs
- assertwrapper.cs
- ProcessModule.cs
- ExtractedStateEntry.cs
- DoubleLinkList.cs
- AutomationPropertyInfo.cs
- ToolStripDropDownClosingEventArgs.cs
- AuthenticatingEventArgs.cs
- WebPartConnectionsCloseVerb.cs
- InvalidContentTypeException.cs
- XmlDownloadManager.cs
- ConnectionPoint.cs
- ChannelOptions.cs
- ExtendedProperty.cs
- RemotingAttributes.cs
- DoubleConverter.cs
- TextOptions.cs
- AsyncPostBackTrigger.cs
- IntSecurity.cs
- RelatedView.cs
- WindowsGrip.cs
- XmlSerializationWriter.cs
- SourceInterpreter.cs
- ResourceBinder.cs
- FaultContractInfo.cs
- WebPartTransformerAttribute.cs
- MimeTypePropertyAttribute.cs
- UnicodeEncoding.cs
- SrgsGrammarCompiler.cs
- CultureSpecificStringDictionary.cs
- SafeMarshalContext.cs
- XPathAxisIterator.cs
- webproxy.cs
- FlowLayoutSettings.cs
- BlockUIContainer.cs
- HwndSubclass.cs
- DelayLoadType.cs
- DataKey.cs
- GlyphRun.cs
- WindowsPen.cs
- MenuRendererClassic.cs
- SoapExtensionImporter.cs
- DependencyPropertyAttribute.cs
- SchemaAttDef.cs
- DbProviderConfigurationHandler.cs
- IntranetCredentialPolicy.cs
- SmtpTransport.cs
- DynamicValidatorEventArgs.cs
- LockRecoveryTask.cs
- Emitter.cs
- SimpleBitVector32.cs
- followingsibling.cs
- DictionaryContent.cs