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
- KeyValuePair.cs
- GridViewRowPresenterBase.cs
- XmlTypeAttribute.cs
- ColorEditor.cs
- DesignerHierarchicalDataSourceView.cs
- GetMemberBinder.cs
- GlobalEventManager.cs
- SoapIgnoreAttribute.cs
- UnaryNode.cs
- OleDbEnumerator.cs
- ApplicationHost.cs
- WindowsTreeView.cs
- SecurityKeyEntropyMode.cs
- RowsCopiedEventArgs.cs
- List.cs
- DesignerForm.cs
- BinaryObjectWriter.cs
- InfoCardCryptoHelper.cs
- PageRequestManager.cs
- HighContrastHelper.cs
- FileVersion.cs
- Preprocessor.cs
- TextElementCollectionHelper.cs
- HashStream.cs
- XmlSerializerFactory.cs
- NativeMethods.cs
- SqlAliaser.cs
- ExpandCollapsePattern.cs
- ClientSponsor.cs
- DoubleLinkListEnumerator.cs
- Mutex.cs
- assemblycache.cs
- EdmSchemaAttribute.cs
- XmlPropertyBag.cs
- LinqDataSourceHelper.cs
- ResourceExpression.cs
- XmlIlGenerator.cs
- ToolStripPanelDesigner.cs
- PublishLicense.cs
- ProxyWebPartManager.cs
- AppSecurityManager.cs
- ObjectItemCachedAssemblyLoader.cs
- TemplateDefinition.cs
- DatatypeImplementation.cs
- CompiledIdentityConstraint.cs
- ValidatorCollection.cs
- DataGrid.cs
- CodeDelegateInvokeExpression.cs
- ExceptionUtility.cs
- XmlJsonReader.cs
- OutputCacheSection.cs
- ListViewUpdateEventArgs.cs
- ListItemsCollectionEditor.cs
- SchemaConstraints.cs
- MembershipAdapter.cs
- EditingCommands.cs
- ColumnClickEvent.cs
- RefType.cs
- ThicknessAnimation.cs
- LogFlushAsyncResult.cs
- DetailsViewDeletedEventArgs.cs
- Margins.cs
- PropertyPathWorker.cs
- SelectionRangeConverter.cs
- TableNameAttribute.cs
- AnimationStorage.cs
- OdbcDataReader.cs
- ConstructorNeedsTagAttribute.cs
- Pkcs9Attribute.cs
- SqlDelegatedTransaction.cs
- ResolvedKeyFrameEntry.cs
- LayoutSettings.cs
- ListViewItem.cs
- AttributeSetAction.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- UserInitiatedNavigationPermission.cs
- CharKeyFrameCollection.cs
- ObjectConverter.cs
- TextEffect.cs
- _BasicClient.cs
- MultiView.cs
- SourceFilter.cs
- CompilerHelpers.cs
- ComPlusThreadInitializer.cs
- Transform3DGroup.cs
- FileVersionInfo.cs
- DoubleCollectionValueSerializer.cs
- DataPagerFieldCommandEventArgs.cs
- ObjectMemberMapping.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- AQNBuilder.cs
- LongTypeConverter.cs
- PartitionResolver.cs
- DiscoveryDocumentReference.cs
- StructuralCache.cs
- SystemIPGlobalProperties.cs
- XmlAnyAttributeAttribute.cs
- LineServicesCallbacks.cs
- AccessorTable.cs
- ImageMetadata.cs