Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataWeb / Server / System / Data / Services / Serializers / IndentedTextWriter.cs / 1 / 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.writer.Close(); } ///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.writer.Close(); } ///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
- WindowsToolbar.cs
- DeflateStream.cs
- Button.cs
- Gdiplus.cs
- RemoteHelper.cs
- ThreadAttributes.cs
- InfoCardBinaryReader.cs
- HttpCapabilitiesSectionHandler.cs
- AccessControlEntry.cs
- CacheAxisQuery.cs
- CheckBoxList.cs
- XPathBinder.cs
- PerformanceCounterTraceRecord.cs
- DisableDpiAwarenessAttribute.cs
- Property.cs
- CryptographicAttribute.cs
- MultiPropertyDescriptorGridEntry.cs
- HashStream.cs
- DetailsViewUpdatedEventArgs.cs
- FileSecurity.cs
- IDReferencePropertyAttribute.cs
- DesignTimeTemplateParser.cs
- DataGridPageChangedEventArgs.cs
- SafeThemeHandle.cs
- safelink.cs
- StatusStrip.cs
- SmiRequestExecutor.cs
- UnmanagedMemoryStreamWrapper.cs
- SmiMetaData.cs
- BitmapFrameEncode.cs
- OLEDB_Util.cs
- ControlAdapter.cs
- BCryptHashAlgorithm.cs
- SqlDataReader.cs
- _NetworkingPerfCounters.cs
- AdornerLayer.cs
- NominalTypeEliminator.cs
- ContentPlaceHolder.cs
- DataServiceBuildProvider.cs
- WsdlImporterElement.cs
- ListViewCancelEventArgs.cs
- AssemblyResourceLoader.cs
- BindValidationContext.cs
- FileDataSourceCache.cs
- ConnectionStringsSection.cs
- TextViewSelectionProcessor.cs
- ReadOnlyDataSourceView.cs
- TTSVoice.cs
- SatelliteContractVersionAttribute.cs
- DesignerDeviceConfig.cs
- Switch.cs
- Util.cs
- AutoGeneratedFieldProperties.cs
- EventHandlingScope.cs
- AsyncOperationManager.cs
- DatePickerDateValidationErrorEventArgs.cs
- SpecialFolderEnumConverter.cs
- DependentList.cs
- MergePropertyDescriptor.cs
- IntellisenseTextBox.cs
- TemplatedMailWebEventProvider.cs
- CompoundFileReference.cs
- Publisher.cs
- ObjectHandle.cs
- ServiceManagerHandle.cs
- SafeCryptHandles.cs
- TypeNameConverter.cs
- XPathNodeInfoAtom.cs
- TailPinnedEventArgs.cs
- WindowsFormsSynchronizationContext.cs
- ControlPaint.cs
- XmlReflectionImporter.cs
- GZipDecoder.cs
- BinaryUtilClasses.cs
- Executor.cs
- WebPartsPersonalizationAuthorization.cs
- NamespaceEmitter.cs
- RelationalExpressions.cs
- InputLanguage.cs
- GridViewDeleteEventArgs.cs
- AccessViolationException.cs
- SourceFileBuildProvider.cs
- EnumerableRowCollection.cs
- _AcceptOverlappedAsyncResult.cs
- ApplicationContext.cs
- EnumCodeDomSerializer.cs
- ErrorWebPart.cs
- AttachedProperty.cs
- SqlVersion.cs
- JapaneseCalendar.cs
- SqlParameterizer.cs
- Trustee.cs
- SafeRegistryHandle.cs
- PersonalizationProvider.cs
- AppAction.cs
- BackgroundFormatInfo.cs
- FileDataSourceCache.cs
- SmtpNetworkElement.cs
- SqlDependencyListener.cs
- ResolveNameEventArgs.cs