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
- Activator.cs
- TextContainerChangeEventArgs.cs
- BamlLocalizableResource.cs
- CaretElement.cs
- KnownTypes.cs
- ConfigXmlAttribute.cs
- JavaScriptSerializer.cs
- ToolStripSplitStackLayout.cs
- SettingsPropertyNotFoundException.cs
- AdPostCacheSubstitution.cs
- BooleanFunctions.cs
- Variant.cs
- GreenMethods.cs
- WindowsListViewSubItem.cs
- SharedPersonalizationStateInfo.cs
- ParseElement.cs
- CopyAction.cs
- ColorBuilder.cs
- RegistryPermission.cs
- CoreSwitches.cs
- DateTimeValueSerializer.cs
- BufferBuilder.cs
- UpdateTranslator.cs
- AssemblyLoader.cs
- TemplatePartAttribute.cs
- DBCommand.cs
- WsatServiceAddress.cs
- Relationship.cs
- SkipStoryboardToFill.cs
- PathSegment.cs
- DataColumnChangeEvent.cs
- DataGridCommandEventArgs.cs
- SchemaNamespaceManager.cs
- MailSettingsSection.cs
- ClientTargetCollection.cs
- CodeObject.cs
- Document.cs
- CustomValidator.cs
- CompilerState.cs
- XmlAttributeCache.cs
- UserControl.cs
- CodeTypeDeclaration.cs
- WrappedKeySecurityTokenParameters.cs
- httpstaticobjectscollection.cs
- MailMessageEventArgs.cs
- TextServicesManager.cs
- AuthenticationServiceManager.cs
- Messages.cs
- BuildProvider.cs
- EdmItemCollection.cs
- ApplicationBuildProvider.cs
- DataTableClearEvent.cs
- TreeNodeCollection.cs
- NamespaceTable.cs
- DynamicObject.cs
- ScrollBar.cs
- WebPartsPersonalization.cs
- ProfileGroupSettingsCollection.cs
- MappingModelBuildProvider.cs
- ColumnReorderedEventArgs.cs
- OletxTransactionHeader.cs
- Expression.DebuggerProxy.cs
- TdsParserStaticMethods.cs
- Rules.cs
- Pkcs9Attribute.cs
- DBConcurrencyException.cs
- Predicate.cs
- TemplateBindingExpressionConverter.cs
- Math.cs
- SoapEnvelopeProcessingElement.cs
- FlowLayoutPanel.cs
- VectorConverter.cs
- WsdlInspector.cs
- SqlDataSourceStatusEventArgs.cs
- HttpListenerContext.cs
- FrameworkReadOnlyPropertyMetadata.cs
- OleDbConnection.cs
- HostProtectionPermission.cs
- FastEncoderStatics.cs
- MessageHeaderAttribute.cs
- TypeLibConverter.cs
- DelegatingMessage.cs
- PrivacyNoticeElement.cs
- ForwardPositionQuery.cs
- ErrorFormatter.cs
- XmlSchemaComplexContentRestriction.cs
- SqlClientMetaDataCollectionNames.cs
- CriticalExceptions.cs
- ApplicationInfo.cs
- WindowsHyperlink.cs
- CompModSwitches.cs
- CacheModeValueSerializer.cs
- DocumentGridPage.cs
- SafeSystemMetrics.cs
- TraceSource.cs
- ObjectDataSourceFilteringEventArgs.cs
- FixedSchema.cs
- AutoSizeToolBoxItem.cs
- AppDomainEvidenceFactory.cs
- JournalNavigationScope.cs