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
- DispatcherProcessingDisabled.cs
- InvokeSchedule.cs
- StrokeNodeOperations.cs
- Vector3D.cs
- NotImplementedException.cs
- peersecurityelement.cs
- Metadata.cs
- MouseBinding.cs
- InheritanceContextHelper.cs
- ChannelFactoryRefCache.cs
- Msmq4PoisonHandler.cs
- RuleDefinitions.cs
- OdbcRowUpdatingEvent.cs
- TypeFieldSchema.cs
- Int32CollectionValueSerializer.cs
- MetadataArtifactLoaderCompositeResource.cs
- Point3DValueSerializer.cs
- UTF32Encoding.cs
- SingleObjectCollection.cs
- MediaPlayerState.cs
- DynamicFilterExpression.cs
- CleanUpVirtualizedItemEventArgs.cs
- WebHttpEndpoint.cs
- DataMisalignedException.cs
- X509Certificate.cs
- PathFigure.cs
- TextEndOfSegment.cs
- TextDecorations.cs
- PassportPrincipal.cs
- CommentEmitter.cs
- NamedServiceModelExtensionCollectionElement.cs
- ApplicationSettingsBase.cs
- MultiView.cs
- MultilineStringConverter.cs
- ColumnTypeConverter.cs
- CutCopyPasteHelper.cs
- CharacterHit.cs
- HealthMonitoringSectionHelper.cs
- ProfileService.cs
- Screen.cs
- ConfigurationStrings.cs
- PersistChildrenAttribute.cs
- MessageDescription.cs
- XamlBuildTaskServices.cs
- SmtpMail.cs
- VSWCFServiceContractGenerator.cs
- UserMapPath.cs
- RoutedEventValueSerializer.cs
- PnrpPeerResolverBindingElement.cs
- DefaultTextStoreTextComposition.cs
- ObjectListFieldCollection.cs
- SqlUDTStorage.cs
- Route.cs
- BamlStream.cs
- DrawItemEvent.cs
- ZipIOBlockManager.cs
- PersianCalendar.cs
- DbBuffer.cs
- DesignerEditorPartChrome.cs
- TreeView.cs
- WebPartMinimizeVerb.cs
- EmptyImpersonationContext.cs
- QilBinary.cs
- RemoteWebConfigurationHostServer.cs
- TemplateControlParser.cs
- OracleInfoMessageEventArgs.cs
- SoapHeader.cs
- MemberInfoSerializationHolder.cs
- PassportIdentity.cs
- ConfigurationSection.cs
- ServiceObjectContainer.cs
- DiagnosticTrace.cs
- PointCollectionConverter.cs
- Propagator.Evaluator.cs
- XPathSingletonIterator.cs
- PartialTrustVisibleAssembliesSection.cs
- TypefaceMap.cs
- IfAction.cs
- ProtocolImporter.cs
- BitmapDecoder.cs
- EntityDataSourceView.cs
- SimpleRecyclingCache.cs
- GlyphInfoList.cs
- SafeProcessHandle.cs
- InfoCardAsymmetricCrypto.cs
- Calendar.cs
- InProcStateClientManager.cs
- LocationReference.cs
- FormViewRow.cs
- ObjectDataSourceDisposingEventArgs.cs
- CollectionContainer.cs
- UIElement3DAutomationPeer.cs
- DrawingContextDrawingContextWalker.cs
- PieceNameHelper.cs
- ETagAttribute.cs
- DataGridViewRowPrePaintEventArgs.cs
- ApplicationServiceManager.cs
- DPTypeDescriptorContext.cs
- ServiceMemoryGates.cs
- PageHandlerFactory.cs