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
- Process.cs
- TargetInvocationException.cs
- ApplicationManager.cs
- ToolStripSplitButton.cs
- AssemblyCollection.cs
- PropertyTabAttribute.cs
- CompositeFontParser.cs
- FlowDocumentPage.cs
- EntityContainerEmitter.cs
- ExpressionEditorAttribute.cs
- AuthenticatedStream.cs
- SqlConnectionManager.cs
- KeyToListMap.cs
- URLIdentityPermission.cs
- ConfigurationLocation.cs
- ADMembershipUser.cs
- EntityDataSourceQueryBuilder.cs
- ConditionCollection.cs
- CharConverter.cs
- VirtualPathUtility.cs
- GraphicsState.cs
- SafeWaitHandle.cs
- TableColumn.cs
- XsdCachingReader.cs
- StateRuntime.cs
- CompareInfo.cs
- SqlGenericUtil.cs
- IImplicitResourceProvider.cs
- GridViewRowCollection.cs
- RepeaterItemCollection.cs
- CompilerHelpers.cs
- ForwardPositionQuery.cs
- BookmarkUndoUnit.cs
- AnnotationComponentManager.cs
- EmptyWorkItem.cs
- RegexCode.cs
- MergeLocalizationDirectives.cs
- IdleTimeoutMonitor.cs
- StdRegProviderWrapper.cs
- _FixedSizeReader.cs
- SchemaContext.cs
- HttpCachePolicyElement.cs
- OdbcParameterCollection.cs
- TransportReplyChannelAcceptor.cs
- XmlElementList.cs
- EventMappingSettingsCollection.cs
- _NegoState.cs
- AssemblyNameUtility.cs
- ConnectionString.cs
- XMLDiffLoader.cs
- GeneratedContractType.cs
- MetadataExchangeBindings.cs
- HebrewCalendar.cs
- ReachPageContentCollectionSerializerAsync.cs
- DescendantOverDescendantQuery.cs
- HttpAsyncResult.cs
- DataList.cs
- SeparatorAutomationPeer.cs
- CodeDirectoryCompiler.cs
- pingexception.cs
- RemotingAttributes.cs
- BinHexDecoder.cs
- XmlCustomFormatter.cs
- ComPlusTypeValidator.cs
- AppDomainGrammarProxy.cs
- Stackframe.cs
- _FtpDataStream.cs
- X509Certificate.cs
- Viewport3DAutomationPeer.cs
- Transform.cs
- AuthorizationSection.cs
- clipboard.cs
- EntityDataSourceContainerNameConverter.cs
- ObjectDataSourceFilteringEventArgs.cs
- CodeTypeParameter.cs
- CopyCodeAction.cs
- RoutedEvent.cs
- TransformGroup.cs
- QueryStringParameter.cs
- DirectoryInfo.cs
- formatter.cs
- SafeLocalMemHandle.cs
- HttpResponseWrapper.cs
- DocumentGrid.cs
- CommandHelpers.cs
- SendMessageContent.cs
- ToolConsole.cs
- DiagnosticsConfigurationHandler.cs
- AdornedElementPlaceholder.cs
- Int32Rect.cs
- DataMisalignedException.cs
- AdCreatedEventArgs.cs
- AliasedSlot.cs
- QilTypeChecker.cs
- AttributeQuery.cs
- RouteTable.cs
- StateMachineWorkflow.cs
- ImageConverter.cs
- MemoryStream.cs
- IPAddressCollection.cs