Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EntityDataSourceSelectingEventArgs.cs
- PerformanceCounterPermissionAttribute.cs
- SQLResource.cs
- ReturnType.cs
- VideoDrawing.cs
- HttpProcessUtility.cs
- TypeElementCollection.cs
- MetadataWorkspace.cs
- LocalFileSettingsProvider.cs
- ProgressBarBrushConverter.cs
- DependencyProperty.cs
- EntityType.cs
- ControlBindingsConverter.cs
- PngBitmapEncoder.cs
- FacetEnabledSchemaElement.cs
- CancellationState.cs
- XamlFilter.cs
- DesignColumn.cs
- TypedTableBaseExtensions.cs
- _FixedSizeReader.cs
- DataBinder.cs
- COM2ExtendedBrowsingHandler.cs
- SplayTreeNode.cs
- RegisteredScript.cs
- MULTI_QI.cs
- GuidelineSet.cs
- SubMenuStyleCollectionEditor.cs
- XdrBuilder.cs
- ReferencedCollectionType.cs
- RichTextBox.cs
- DataBindingCollection.cs
- SymLanguageType.cs
- InvalidateEvent.cs
- AuthenticatedStream.cs
- ISessionStateStore.cs
- AdRotatorDesigner.cs
- FormViewCommandEventArgs.cs
- GlobalizationSection.cs
- CodeNamespaceImport.cs
- DataBinding.cs
- CopyAction.cs
- ToolStrip.cs
- FormViewDeletedEventArgs.cs
- figurelength.cs
- XamlPathDataSerializer.cs
- SelectedCellsChangedEventArgs.cs
- CallId.cs
- ExtentCqlBlock.cs
- WebEvents.cs
- ConstraintEnumerator.cs
- DataGridViewRow.cs
- ScriptingSectionGroup.cs
- DependencyObject.cs
- RangeValuePattern.cs
- InsufficientMemoryException.cs
- ConstNode.cs
- ProcessModelInfo.cs
- DataServiceQuery.cs
- TextContainerChangeEventArgs.cs
- CodeIndexerExpression.cs
- XmlReaderSettings.cs
- Registry.cs
- PageBorderless.cs
- ConfigurationSettings.cs
- AssociatedControlConverter.cs
- LineServices.cs
- MatrixTransform.cs
- NullRuntimeConfig.cs
- ActivityInstanceReference.cs
- RequestResizeEvent.cs
- AdPostCacheSubstitution.cs
- StyleXamlParser.cs
- HTMLTagNameToTypeMapper.cs
- WorkflowExecutor.cs
- FileEnumerator.cs
- PersistenceException.cs
- OpenTypeCommon.cs
- Transform3DCollection.cs
- ProviderSettingsCollection.cs
- DoubleLinkListEnumerator.cs
- FlowDocumentView.cs
- SecurityDescriptor.cs
- PageTheme.cs
- ListBase.cs
- SamlAuthenticationClaimResource.cs
- ListBox.cs
- WebDisplayNameAttribute.cs
- DataSourceHelper.cs
- DataSourceView.cs
- RSAOAEPKeyExchangeDeformatter.cs
- MenuItem.cs
- DataControlImageButton.cs
- TailCallAnalyzer.cs
- ExclusiveTcpListener.cs
- BinaryMessageEncodingBindingElement.cs
- UrlMappingsModule.cs
- BasicViewGenerator.cs
- MatrixStack.cs
- AuthorizationRuleCollection.cs
- StateElement.cs