Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / SMDiagnostics / System / ServiceModel / Diagnostics / PlainXmlWriter.cs / 1305376 / PlainXmlWriter.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Diagnostics { using System.Xml; using System.Diagnostics; ////// Very basic performance-oriented XmlWriter implementation. No validation/encoding is made. /// Namespaces are not supported /// Minimal formatting support /// internal class PlainXmlWriter : XmlWriter { internal class MaxSizeExceededException : Exception { } TraceXPathNavigator navigator; bool writingAttribute = false; string currentAttributeName; string currentAttributePrefix; string currentAttributeNs; string currentAttributeText = string.Empty; public PlainXmlWriter() : this(-1) //no quota { } public PlainXmlWriter(int maxSize) { this.navigator = new TraceXPathNavigator(maxSize); } public TraceXPathNavigator Navigator { get { return this.navigator; } } public override void WriteStartDocument() { } public override void WriteStartDocument(bool standalone) { } public override void WriteDocType(string name, string pubid, string sysid, string subset) { } public override void WriteEndDocument() { } public override string LookupPrefix(string ns) { return this.navigator.LookupPrefix(ns); } public override WriteState WriteState { get { return this.navigator.WriteState; } } public override XmlSpace XmlSpace { get { return XmlSpace.Default; } } public override string XmlLang { get { return string.Empty; } } public override void WriteValue(object value) { this.navigator.AddText(value.ToString()); } public override void WriteValue(string value) { this.navigator.AddText(value); } public override void WriteBase64(byte[] buffer, int offset, int count) { } public override void WriteStartElement(string prefix, string localName, string ns) { #pragma warning disable 618 AssertUtility.DebugAssert(!String.IsNullOrEmpty(localName), ""); #pragma warning restore 618 if (String.IsNullOrEmpty(localName)) { throw new ArgumentNullException("localName"); } this.navigator.AddElement(prefix, localName, ns); } public override void WriteFullEndElement() { WriteEndElement(); } public override void WriteEndElement() { this.navigator.CloseElement(); } public override void WriteStartAttribute(string prefix, string localName, string ns) { #pragma warning disable 618 AssertUtility.DebugAssert(!this.writingAttribute, ""); #pragma warning restore 618 if (this.writingAttribute) { throw new InvalidOperationException(); } this.currentAttributeName = localName; this.currentAttributePrefix = prefix; this.currentAttributeNs = ns; this.currentAttributeText = string.Empty; this.writingAttribute = true; } public override void WriteEndAttribute() { #pragma warning disable 618 AssertUtility.DebugAssert(this.writingAttribute, ""); #pragma warning restore 618 if (!this.writingAttribute) { throw new InvalidOperationException(); } this.navigator.AddAttribute(this.currentAttributeName, this.currentAttributeText, this.currentAttributeNs, this.currentAttributePrefix); this.writingAttribute = false; } public override void WriteCData(string text) { this.WriteRaw(""); } public override void WriteComment(string text) { this.navigator.AddComment(text); } public override void WriteProcessingInstruction(string name, string text) { this.navigator.AddProcessingInstruction(name, text); } public override void WriteEntityRef(string name) { } public override void WriteCharEntity(char ch) { } public override void WriteSurrogateCharEntity(char lowChar, char highChar) { } public override void WriteWhitespace(string ws) { } public override void WriteString(string text) { if (this.writingAttribute) { currentAttributeText += text; } else { this.WriteValue(text); } } public override void WriteChars(Char[] buffer, int index, int count) { // Exceptions being thrown as per data found at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemxmlxmlwriterclasswritecharstopic.asp if (buffer == null) { throw new ArgumentNullException("buffer"); } if (index < 0) { throw new ArgumentOutOfRangeException("index"); } if (count < 0) { throw new ArgumentOutOfRangeException("count"); } if ((buffer.Length - index) < count) { throw new ArgumentException(TraceSR.GetString(TraceSR.WriteCharsInvalidContent)); } this.WriteString(new string(buffer, index, count)); } public override void WriteRaw(String data) { this.WriteString(data); } public override void WriteRaw(Char[] buffer, int index, int count) { this.WriteChars(buffer, index, count); } public override void Close() { } public override void Flush() { } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Diagnostics { using System.Xml; using System.Diagnostics; ////// Very basic performance-oriented XmlWriter implementation. No validation/encoding is made. /// Namespaces are not supported /// Minimal formatting support /// internal class PlainXmlWriter : XmlWriter { internal class MaxSizeExceededException : Exception { } TraceXPathNavigator navigator; bool writingAttribute = false; string currentAttributeName; string currentAttributePrefix; string currentAttributeNs; string currentAttributeText = string.Empty; public PlainXmlWriter() : this(-1) //no quota { } public PlainXmlWriter(int maxSize) { this.navigator = new TraceXPathNavigator(maxSize); } public TraceXPathNavigator Navigator { get { return this.navigator; } } public override void WriteStartDocument() { } public override void WriteStartDocument(bool standalone) { } public override void WriteDocType(string name, string pubid, string sysid, string subset) { } public override void WriteEndDocument() { } public override string LookupPrefix(string ns) { return this.navigator.LookupPrefix(ns); } public override WriteState WriteState { get { return this.navigator.WriteState; } } public override XmlSpace XmlSpace { get { return XmlSpace.Default; } } public override string XmlLang { get { return string.Empty; } } public override void WriteValue(object value) { this.navigator.AddText(value.ToString()); } public override void WriteValue(string value) { this.navigator.AddText(value); } public override void WriteBase64(byte[] buffer, int offset, int count) { } public override void WriteStartElement(string prefix, string localName, string ns) { #pragma warning disable 618 AssertUtility.DebugAssert(!String.IsNullOrEmpty(localName), ""); #pragma warning restore 618 if (String.IsNullOrEmpty(localName)) { throw new ArgumentNullException("localName"); } this.navigator.AddElement(prefix, localName, ns); } public override void WriteFullEndElement() { WriteEndElement(); } public override void WriteEndElement() { this.navigator.CloseElement(); } public override void WriteStartAttribute(string prefix, string localName, string ns) { #pragma warning disable 618 AssertUtility.DebugAssert(!this.writingAttribute, ""); #pragma warning restore 618 if (this.writingAttribute) { throw new InvalidOperationException(); } this.currentAttributeName = localName; this.currentAttributePrefix = prefix; this.currentAttributeNs = ns; this.currentAttributeText = string.Empty; this.writingAttribute = true; } public override void WriteEndAttribute() { #pragma warning disable 618 AssertUtility.DebugAssert(this.writingAttribute, ""); #pragma warning restore 618 if (!this.writingAttribute) { throw new InvalidOperationException(); } this.navigator.AddAttribute(this.currentAttributeName, this.currentAttributeText, this.currentAttributeNs, this.currentAttributePrefix); this.writingAttribute = false; } public override void WriteCData(string text) { this.WriteRaw(""); } public override void WriteComment(string text) { this.navigator.AddComment(text); } public override void WriteProcessingInstruction(string name, string text) { this.navigator.AddProcessingInstruction(name, text); } public override void WriteEntityRef(string name) { } public override void WriteCharEntity(char ch) { } public override void WriteSurrogateCharEntity(char lowChar, char highChar) { } public override void WriteWhitespace(string ws) { } public override void WriteString(string text) { if (this.writingAttribute) { currentAttributeText += text; } else { this.WriteValue(text); } } public override void WriteChars(Char[] buffer, int index, int count) { // Exceptions being thrown as per data found at http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemxmlxmlwriterclasswritecharstopic.asp if (buffer == null) { throw new ArgumentNullException("buffer"); } if (index < 0) { throw new ArgumentOutOfRangeException("index"); } if (count < 0) { throw new ArgumentOutOfRangeException("count"); } if ((buffer.Length - index) < count) { throw new ArgumentException(TraceSR.GetString(TraceSR.WriteCharsInvalidContent)); } this.WriteString(new string(buffer, index, count)); } public override void WriteRaw(String data) { this.WriteString(data); } public override void WriteRaw(Char[] buffer, int index, int count) { this.WriteChars(buffer, index, count); } public override void Close() { } public override void Flush() { } } } // 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
- WebPartZoneBase.cs
- ControllableStoryboardAction.cs
- ConfigurationValidatorAttribute.cs
- SafeRegistryHandle.cs
- Exceptions.cs
- MatrixAnimationBase.cs
- DesignerView.xaml.cs
- OracleRowUpdatedEventArgs.cs
- Pair.cs
- PopupEventArgs.cs
- DataSourceControlBuilder.cs
- DispatchWrapper.cs
- bidPrivateBase.cs
- XPathEmptyIterator.cs
- ScriptManagerProxy.cs
- OracleParameterBinding.cs
- Rotation3DAnimationBase.cs
- WebPartExportVerb.cs
- remotingproxy.cs
- WindowManager.cs
- GridViewColumnCollectionChangedEventArgs.cs
- ExplicitDiscriminatorMap.cs
- Dictionary.cs
- DetailsViewDeletedEventArgs.cs
- HtmlToClrEventProxy.cs
- SharedPersonalizationStateInfo.cs
- SessionStateItemCollection.cs
- SamlConstants.cs
- TextLineResult.cs
- AsyncInvokeOperation.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- SqlPersonalizationProvider.cs
- QilIterator.cs
- SelectedDatesCollection.cs
- ContextStack.cs
- ClientApiGenerator.cs
- TableSectionStyle.cs
- FlatButtonAppearance.cs
- TableItemProviderWrapper.cs
- HttpModulesSection.cs
- DbCommandDefinition.cs
- ParameterReplacerVisitor.cs
- AnimationClock.cs
- MsmqIntegrationProcessProtocolHandler.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- HtmlGenericControl.cs
- FrameworkContextData.cs
- AutomationIdentifier.cs
- StreamUpgradeAcceptor.cs
- Win32KeyboardDevice.cs
- HelpEvent.cs
- ProviderConnectionPointCollection.cs
- ObjectHelper.cs
- OracleEncoding.cs
- ComponentResourceManager.cs
- SqlInternalConnection.cs
- HttpCapabilitiesSectionHandler.cs
- PersonalizableAttribute.cs
- QueryStringParameter.cs
- WebSysDisplayNameAttribute.cs
- BaseResourcesBuildProvider.cs
- HelloOperationCD1AsyncResult.cs
- MobileControl.cs
- TableItemPattern.cs
- BitmapFrameEncode.cs
- SettingsPropertyNotFoundException.cs
- PropertyRecord.cs
- PolygonHotSpot.cs
- DataSourceControl.cs
- ValueChangedEventManager.cs
- ServicePointManager.cs
- StringHandle.cs
- TraceListener.cs
- StringHelper.cs
- WindowsFont.cs
- ExpressionCopier.cs
- MetabaseSettings.cs
- COM2IDispatchConverter.cs
- RuntimeConfigLKG.cs
- SetStateDesigner.cs
- FrameworkElement.cs
- PtsContext.cs
- TraceHandler.cs
- ClientRoleProvider.cs
- StickyNoteAnnotations.cs
- FrameAutomationPeer.cs
- GuidTagList.cs
- XmlSchemaSimpleType.cs
- MemberAccessException.cs
- ImageClickEventArgs.cs
- DynamicValueConverter.cs
- NamedElement.cs
- CultureTable.cs
- ButtonBaseAutomationPeer.cs
- StreamBodyWriter.cs
- CqlParser.cs
- CacheAxisQuery.cs
- CategoryGridEntry.cs
- TableRowGroup.cs
- LineProperties.cs