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
- X509ServiceCertificateAuthenticationElement.cs
- PathFigureCollectionValueSerializer.cs
- BatchParser.cs
- SqlDataSourceConfigureSelectPanel.cs
- BufferAllocator.cs
- VersionedStreamOwner.cs
- activationcontext.cs
- fixedPageContentExtractor.cs
- StorageRoot.cs
- XmlAttributeOverrides.cs
- _IPv4Address.cs
- ImageInfo.cs
- RepeatBehavior.cs
- LexicalChunk.cs
- ParseChildrenAsPropertiesAttribute.cs
- StylusPointPropertyInfo.cs
- MultiByteCodec.cs
- BinaryObjectInfo.cs
- TextParentUndoUnit.cs
- WriteableOnDemandPackagePart.cs
- Package.cs
- AutomationPeer.cs
- ReferencedCollectionType.cs
- shaper.cs
- FilterableAttribute.cs
- LinearGradientBrush.cs
- UpdateException.cs
- ExtensionSimplifierMarkupObject.cs
- Environment.cs
- XmlArrayAttribute.cs
- DirectionalLight.cs
- TypedDataSetSchemaImporterExtension.cs
- NameTable.cs
- BooleanAnimationUsingKeyFrames.cs
- LockedActivityGlyph.cs
- XmlnsCompatibleWithAttribute.cs
- RegexCompiler.cs
- Statements.cs
- HyperLinkDataBindingHandler.cs
- DataServiceQueryOfT.cs
- BitArray.cs
- CodeMethodInvokeExpression.cs
- XPathNodeHelper.cs
- ChildDocumentBlock.cs
- MonitorWrapper.cs
- XmlDictionary.cs
- Content.cs
- AppSettingsReader.cs
- DefaultMemberAttribute.cs
- SafeNativeHandle.cs
- CellQuery.cs
- CheckBoxAutomationPeer.cs
- _ScatterGatherBuffers.cs
- Instrumentation.cs
- Graph.cs
- SqlUtils.cs
- Exceptions.cs
- _CommandStream.cs
- BindingNavigator.cs
- HttpChannelBindingToken.cs
- PublisherIdentityPermission.cs
- Int32RectConverter.cs
- ToolStripItemImageRenderEventArgs.cs
- DataGridViewDataConnection.cs
- TextBoxBase.cs
- CodeGeneratorOptions.cs
- RepeaterItem.cs
- PropertyManager.cs
- MimeParameters.cs
- HWStack.cs
- BamlLocalizationDictionary.cs
- DiscoveryServerProtocol.cs
- StringUtil.cs
- ExternalCalls.cs
- RoleManagerModule.cs
- CodeMemberEvent.cs
- XmlSchemaChoice.cs
- ManagementObjectSearcher.cs
- BuildResult.cs
- SmiGettersStream.cs
- EntitySet.cs
- XmlDigitalSignatureProcessor.cs
- LayoutTableCell.cs
- unitconverter.cs
- ConsoleCancelEventArgs.cs
- ShaderEffect.cs
- LogicalMethodInfo.cs
- PanelDesigner.cs
- ConfigurationSectionCollection.cs
- DiscreteKeyFrames.cs
- XhtmlConformanceSection.cs
- XmlDeclaration.cs
- ParallelEnumerableWrapper.cs
- ObjectViewListener.cs
- XamlValidatingReader.cs
- Int32Rect.cs
- SynchronizedPool.cs
- XmlTextReader.cs
- DetailsViewPageEventArgs.cs
- BaseDataListPage.cs