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
- RijndaelManaged.cs
- DayRenderEvent.cs
- XamlTypeMapper.cs
- XmlReflectionMember.cs
- MsmqChannelFactory.cs
- NextPreviousPagerField.cs
- XPathItem.cs
- ChangeDirector.cs
- ReflectionPermission.cs
- WmpBitmapDecoder.cs
- CalendarButtonAutomationPeer.cs
- ObjectViewFactory.cs
- MatcherBuilder.cs
- ColorKeyFrameCollection.cs
- FontDifferentiator.cs
- StringDictionaryWithComparer.cs
- ReadOnlyDictionary.cs
- LayoutEvent.cs
- XPathQilFactory.cs
- ParallelQuery.cs
- Base64Decoder.cs
- CodeArrayCreateExpression.cs
- StopStoryboard.cs
- CodeAttributeDeclarationCollection.cs
- DesignSurface.cs
- StoreUtilities.cs
- ByteStream.cs
- DeviceContexts.cs
- SetStoryboardSpeedRatio.cs
- KeyEvent.cs
- CompilationPass2Task.cs
- CreateParams.cs
- DataGridViewCheckBoxColumn.cs
- CodeDOMUtility.cs
- DataConnectionHelper.cs
- DNS.cs
- ContextMarshalException.cs
- CookieHandler.cs
- ToolBarButtonClickEvent.cs
- handlecollector.cs
- TableItemProviderWrapper.cs
- SAPIEngineTypes.cs
- PackUriHelper.cs
- GridViewSelectEventArgs.cs
- DesignerForm.cs
- ListViewDataItem.cs
- PersonalizationProviderHelper.cs
- FixedSOMContainer.cs
- XmlDataSourceNodeDescriptor.cs
- InputLangChangeEvent.cs
- ToolboxBitmapAttribute.cs
- Renderer.cs
- EndpointAddressProcessor.cs
- SecurityTraceRecordHelper.cs
- SessionSwitchEventArgs.cs
- DecimalAnimationUsingKeyFrames.cs
- StrokeSerializer.cs
- CommittableTransaction.cs
- handlecollector.cs
- ScrollableControl.cs
- TextBoxBase.cs
- XmlNamespaceMappingCollection.cs
- HandleCollector.cs
- DeflateEmulationStream.cs
- TableNameAttribute.cs
- SiteMembershipCondition.cs
- SystemIcmpV4Statistics.cs
- CacheSection.cs
- UndoManager.cs
- BaseServiceProvider.cs
- DetailsViewRowCollection.cs
- safex509handles.cs
- NavigationExpr.cs
- XPathNodeHelper.cs
- SettingsPropertyWrongTypeException.cs
- CriticalHandle.cs
- PropertyHelper.cs
- GeneralTransform3D.cs
- HandlerBase.cs
- OperandQuery.cs
- SqlTrackingService.cs
- Manipulation.cs
- _FixedSizeReader.cs
- errorpatternmatcher.cs
- FontDifferentiator.cs
- SymmetricKeyWrap.cs
- SkipQueryOptionExpression.cs
- StructuredTypeEmitter.cs
- itemelement.cs
- DataViewManager.cs
- MatchingStyle.cs
- log.cs
- SimpleHandlerFactory.cs
- WebEncodingValidatorAttribute.cs
- LoadedEvent.cs
- CellTreeSimplifier.cs
- _NTAuthentication.cs
- EncryptedKey.cs
- X500Name.cs
- SamlAttributeStatement.cs