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
- AttachedPropertyBrowsableForTypeAttribute.cs
- TdsEnums.cs
- PropertyValueChangedEvent.cs
- TemplateContainer.cs
- IndexOutOfRangeException.cs
- PhysicalOps.cs
- SQLBoolean.cs
- DeleteMemberBinder.cs
- HwndStylusInputProvider.cs
- PropagatorResult.cs
- parserscommon.cs
- MaskDescriptor.cs
- StringFreezingAttribute.cs
- LineMetrics.cs
- EDesignUtil.cs
- FormViewDeletedEventArgs.cs
- FileDialogPermission.cs
- TaskHelper.cs
- EventMap.cs
- CompositionDesigner.cs
- ContainerControl.cs
- ObjectDataSourceWizardForm.cs
- InvokePatternIdentifiers.cs
- AsyncResult.cs
- CodeComment.cs
- ObjectDataSource.cs
- EmptyQuery.cs
- RelatedCurrencyManager.cs
- Paragraph.cs
- FieldCollectionEditor.cs
- AuthenticationManager.cs
- OleTxTransactionInfo.cs
- listitem.cs
- OracleException.cs
- NamedPermissionSet.cs
- CompilerState.cs
- ScaleTransform.cs
- TextWriterTraceListener.cs
- sqlmetadatafactory.cs
- CharEntityEncoderFallback.cs
- FontFamilyIdentifier.cs
- ThicknessAnimation.cs
- ChooseAction.cs
- CodeDomLocalizationProvider.cs
- DiagnosticTrace.cs
- LinqDataSourceDisposeEventArgs.cs
- DataMember.cs
- ScriptServiceAttribute.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- AttachedAnnotationChangedEventArgs.cs
- RepeaterItem.cs
- URLMembershipCondition.cs
- XmlSchemaExternal.cs
- AjaxFrameworkAssemblyAttribute.cs
- DataRelationPropertyDescriptor.cs
- DayRenderEvent.cs
- Asn1IntegerConverter.cs
- HtmlContainerControl.cs
- StorageRoot.cs
- Application.cs
- SmtpCommands.cs
- QilChoice.cs
- DataSysAttribute.cs
- ApplicationSecurityInfo.cs
- PersonalizationProvider.cs
- CellLabel.cs
- Content.cs
- XmlNavigatorStack.cs
- UriSection.cs
- WebScriptServiceHostFactory.cs
- IsolationInterop.cs
- TraceSection.cs
- ReliabilityContractAttribute.cs
- ProcessProtocolHandler.cs
- MultiView.cs
- ApplicationDirectoryMembershipCondition.cs
- ColumnMapCopier.cs
- SqlTriggerAttribute.cs
- IPCCacheManager.cs
- GlobalizationAssembly.cs
- HttpModuleActionCollection.cs
- WindowsListBox.cs
- SessionIDManager.cs
- XmlBaseWriter.cs
- DocumentViewerBaseAutomationPeer.cs
- InvalidWMPVersionException.cs
- HttpGetClientProtocol.cs
- XmlTextWriter.cs
- CapabilitiesUse.cs
- AttributeQuery.cs
- PageContentAsyncResult.cs
- WindowsContainer.cs
- Visual3D.cs
- _SSPIWrapper.cs
- ResourceContainer.cs
- StructureChangedEventArgs.cs
- UnmanagedMemoryStreamWrapper.cs
- TraceEventCache.cs
- HttpFileCollectionWrapper.cs
- SettingsBase.cs