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
- CustomErrorCollection.cs
- LogPolicy.cs
- PropertyTab.cs
- LocalServiceSecuritySettingsElement.cs
- CatalogPart.cs
- CompilerScope.cs
- DataGridPageChangedEventArgs.cs
- XPathEmptyIterator.cs
- PermissionSet.cs
- StreamGeometry.cs
- ContextMenu.cs
- InputBuffer.cs
- XPathBinder.cs
- XsdDuration.cs
- Binding.cs
- BitSet.cs
- ComponentCodeDomSerializer.cs
- RijndaelManaged.cs
- XmlAnyElementAttributes.cs
- SimpleExpression.cs
- CmsInterop.cs
- XmlMapping.cs
- XPathAxisIterator.cs
- OdbcParameterCollection.cs
- ConfigurationManagerHelperFactory.cs
- SpellerInterop.cs
- ConfigurationManager.cs
- HttpPostProtocolImporter.cs
- ChannelServices.cs
- NumericUpDownAccelerationCollection.cs
- StringBuilder.cs
- DecimalAnimation.cs
- RIPEMD160Managed.cs
- WebPartTracker.cs
- CfgArc.cs
- MsmqMessageSerializationFormat.cs
- ConnectionPointConverter.cs
- FormsAuthentication.cs
- CachedFontFace.cs
- SchemaImporterExtension.cs
- AspNetSynchronizationContext.cs
- MenuItem.cs
- ZipIOLocalFileHeader.cs
- ImmComposition.cs
- Selector.cs
- DocumentReferenceCollection.cs
- SafeArrayTypeMismatchException.cs
- MsmqIntegrationProcessProtocolHandler.cs
- LexicalChunk.cs
- FixedSOMFixedBlock.cs
- NonBatchDirectoryCompiler.cs
- ReadingWritingEntityEventArgs.cs
- DbModificationCommandTree.cs
- Win32Exception.cs
- TypeLoadException.cs
- MenuTracker.cs
- RelationHandler.cs
- QueryPrefixOp.cs
- XmlSchemaValidator.cs
- XmlDataLoader.cs
- Helpers.cs
- SchemaElementLookUpTable.cs
- ConfigXmlElement.cs
- InstancePersistence.cs
- EarlyBoundInfo.cs
- SchemaSetCompiler.cs
- ObjectDataSourceView.cs
- IListConverters.cs
- AssemblyHash.cs
- UIEndRequest.cs
- _SSPIWrapper.cs
- ListMarkerSourceInfo.cs
- PerformanceCounterPermission.cs
- SubMenuStyleCollectionEditor.cs
- IPEndPointCollection.cs
- UnknownWrapper.cs
- CompositeFontParser.cs
- RemoteArgument.cs
- ExpressionTextBox.xaml.cs
- QuaternionAnimationBase.cs
- ContentType.cs
- BitmapEffectInputData.cs
- ImmutableObjectAttribute.cs
- basecomparevalidator.cs
- HtmlButton.cs
- RoutedUICommand.cs
- MessageQueueInstaller.cs
- SoundPlayer.cs
- ActivityDesignerHelper.cs
- XmlDataSourceView.cs
- HostProtectionPermission.cs
- RelativeSource.cs
- AutoCompleteStringCollection.cs
- xml.cs
- AsymmetricKeyExchangeDeformatter.cs
- DesignerLinkAdapter.cs
- PopupControlService.cs
- DataGridViewCellPaintingEventArgs.cs
- TimeZone.cs
- FieldToken.cs