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
- Brush.cs
- CqlParser.cs
- SerializationAttributes.cs
- RadialGradientBrush.cs
- Point3DCollection.cs
- ImageCollectionCodeDomSerializer.cs
- TraceHwndHost.cs
- DesignTimeType.cs
- LineInfo.cs
- DataGridTextBoxColumn.cs
- xmlfixedPageInfo.cs
- CreateParams.cs
- PageContentCollection.cs
- DiagnosticTrace.cs
- securitycriticaldataformultiplegetandset.cs
- LoginView.cs
- AttachedPropertyMethodSelector.cs
- AngleUtil.cs
- PropertyChangedEventManager.cs
- ActivityDesignerResources.cs
- Int16AnimationBase.cs
- PathFigureCollection.cs
- Debugger.cs
- HelpEvent.cs
- QuaternionIndependentAnimationStorage.cs
- RegisteredScript.cs
- XhtmlBasicValidationSummaryAdapter.cs
- MeshGeometry3D.cs
- SignedInfo.cs
- MethodAccessException.cs
- Environment.cs
- BamlMapTable.cs
- BadImageFormatException.cs
- SelectionList.cs
- UIElementParaClient.cs
- OperandQuery.cs
- Membership.cs
- RequestValidator.cs
- _emptywebproxy.cs
- QueryableFilterUserControl.cs
- UnitySerializationHolder.cs
- TextTreeInsertElementUndoUnit.cs
- TransformerInfo.cs
- StreamSecurityUpgradeInitiatorAsyncResult.cs
- NeutralResourcesLanguageAttribute.cs
- EntityModelBuildProvider.cs
- SmiContext.cs
- TreeNodeBindingCollection.cs
- ServiceAppDomainAssociationProvider.cs
- WebBrowserPermission.cs
- x509utils.cs
- StylusPointProperty.cs
- DateTimeOffset.cs
- EdmToObjectNamespaceMap.cs
- AuthorizationBehavior.cs
- SettingsProperty.cs
- Decorator.cs
- ExtractorMetadata.cs
- GetImportedCardRequest.cs
- DecimalStorage.cs
- XmlNotation.cs
- GridViewRow.cs
- BitmapEffect.cs
- Control.cs
- HiddenFieldPageStatePersister.cs
- OutputCacheSection.cs
- FeatureManager.cs
- DataColumnMapping.cs
- InstalledVoice.cs
- FileNotFoundException.cs
- TextDecorationCollectionConverter.cs
- TextRunTypographyProperties.cs
- XPathBinder.cs
- SemanticValue.cs
- TileBrush.cs
- SettingsPropertyWrongTypeException.cs
- GridViewItemAutomationPeer.cs
- XmlDataProvider.cs
- SoapSchemaMember.cs
- XPathNodeHelper.cs
- ToolStripProgressBar.cs
- MouseCaptureWithinProperty.cs
- DataObjectSettingDataEventArgs.cs
- TextFindEngine.cs
- SerTrace.cs
- EditorOptionAttribute.cs
- Html32TextWriter.cs
- SymbolUsageManager.cs
- SqlFacetAttribute.cs
- WeakReference.cs
- AssemblyCache.cs
- CustomWebEventKey.cs
- DayRenderEvent.cs
- XmlDigitalSignatureProcessor.cs
- VerifyHashRequest.cs
- AppearanceEditorPart.cs
- LingerOption.cs
- EntryIndex.cs
- GraphicsPath.cs
- InternalBufferOverflowException.cs