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
- ScopedKnownTypes.cs
- XmlTextAttribute.cs
- ControlPaint.cs
- ValueConversionAttribute.cs
- cookie.cs
- XsdCachingReader.cs
- X509SubjectKeyIdentifierClause.cs
- WindowsIPAddress.cs
- HybridObjectCache.cs
- MarginCollapsingState.cs
- Parser.cs
- BamlResourceDeserializer.cs
- QilInvokeLateBound.cs
- SyndicationSerializer.cs
- MouseCaptureWithinProperty.cs
- RecipientInfo.cs
- TCEAdapterGenerator.cs
- RequestSecurityToken.cs
- WebPartExportVerb.cs
- FormClosingEvent.cs
- ConnectionManagementElement.cs
- DebugView.cs
- ListSortDescription.cs
- OptimalBreakSession.cs
- XsdDateTime.cs
- SqlConnectionManager.cs
- ClientApiGenerator.cs
- FillRuleValidation.cs
- DiscoveryClientProtocol.cs
- XsltOutput.cs
- SQLBinary.cs
- PerformanceCounter.cs
- DirectionalLight.cs
- ContainerFilterService.cs
- TdsParserStaticMethods.cs
- ProcessModelSection.cs
- ScriptResourceInfo.cs
- CapabilitiesAssignment.cs
- MediaElementAutomationPeer.cs
- AttachedPropertyMethodSelector.cs
- DrawItemEvent.cs
- CellConstant.cs
- HtmlTable.cs
- AssemblyBuilderData.cs
- _FtpDataStream.cs
- PeerInputChannel.cs
- StorageInfo.cs
- RecommendedAsConfigurableAttribute.cs
- validationstate.cs
- XmlElement.cs
- ProjectionRewriter.cs
- BlockUIContainer.cs
- MembershipPasswordException.cs
- Thumb.cs
- WCFModelStrings.Designer.cs
- QueryContinueDragEvent.cs
- LocationEnvironment.cs
- ConfigurationSettings.cs
- WorkflowOwnershipException.cs
- StrokeCollectionDefaultValueFactory.cs
- StructuredType.cs
- ProxyRpc.cs
- NameValuePermission.cs
- SplineKeyFrames.cs
- OperationAbortedException.cs
- Quaternion.cs
- DataFormats.cs
- DBSchemaRow.cs
- Expressions.cs
- FakeModelItemImpl.cs
- PatternMatcher.cs
- PositiveTimeSpanValidatorAttribute.cs
- Utils.cs
- GradientSpreadMethodValidation.cs
- OdbcDataReader.cs
- EllipseGeometry.cs
- DbConnectionHelper.cs
- EventListenerClientSide.cs
- RtType.cs
- ClientSettingsStore.cs
- StringComparer.cs
- OverflowException.cs
- IdentityModelStringsVersion1.cs
- ResourceDisplayNameAttribute.cs
- DocumentOrderQuery.cs
- WorkflowElementDialog.cs
- AnonymousIdentificationSection.cs
- IisTraceWebEventProvider.cs
- BitConverter.cs
- WinCategoryAttribute.cs
- EastAsianLunisolarCalendar.cs
- LZCodec.cs
- recordstate.cs
- DataServiceQueryOfT.cs
- AccessText.cs
- VBCodeProvider.cs
- ValidationResult.cs
- MeasurementDCInfo.cs
- LinkConverter.cs
- BatchWriter.cs