Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / SMDiagnostics / System / ServiceModel / Diagnostics / PlainXmlWriter.cs / 1 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- OletxTransactionHeader.cs
- DataRowChangeEvent.cs
- OverflowException.cs
- DrawListViewItemEventArgs.cs
- NoResizeHandleGlyph.cs
- TextCollapsingProperties.cs
- XmlEntityReference.cs
- Form.cs
- UnsafePeerToPeerMethods.cs
- SerializationInfo.cs
- FontDifferentiator.cs
- IsolatedStoragePermission.cs
- Dump.cs
- ScriptingRoleServiceSection.cs
- WindowsGraphicsWrapper.cs
- SQLDecimal.cs
- ContentPropertyAttribute.cs
- DomainConstraint.cs
- ExtensionDataObject.cs
- Animatable.cs
- SrgsElementList.cs
- MemoryResponseElement.cs
- HyperLink.cs
- ScriptComponentDescriptor.cs
- EncoderNLS.cs
- AttachedPropertyBrowsableAttribute.cs
- ClientTargetSection.cs
- PropertyEmitter.cs
- _NestedMultipleAsyncResult.cs
- RegexRunnerFactory.cs
- TextDataBindingHandler.cs
- CacheSection.cs
- XmlSchemaSubstitutionGroup.cs
- XamlSerializerUtil.cs
- VisualTransition.cs
- VariableValue.cs
- PnrpPermission.cs
- CurrentTimeZone.cs
- DataGridViewCellCollection.cs
- SplashScreenNativeMethods.cs
- ServiceTimeoutsBehavior.cs
- FileIOPermission.cs
- CalendarDay.cs
- EncoderParameter.cs
- ToolboxComponentsCreatedEventArgs.cs
- ResourceAssociationSet.cs
- Utils.cs
- EventRouteFactory.cs
- ReceiveActivityValidator.cs
- ConnectionPointCookie.cs
- ProfileGroupSettings.cs
- OrderedDictionary.cs
- MarkupExtensionReturnTypeAttribute.cs
- XPathMessageFilterElement.cs
- PrimitiveXmlSerializers.cs
- ConfigurationPropertyCollection.cs
- DataControlCommands.cs
- EntityWithChangeTrackerStrategy.cs
- SqlCacheDependencyDatabase.cs
- TimeSpanStorage.cs
- PtsHost.cs
- CqlIdentifiers.cs
- PenCursorManager.cs
- EnumValidator.cs
- ExtendedPropertyCollection.cs
- MessageHeaderInfoTraceRecord.cs
- SafeArrayTypeMismatchException.cs
- ECDiffieHellmanPublicKey.cs
- CopyNamespacesAction.cs
- AssemblyNameProxy.cs
- FontSource.cs
- SqlUserDefinedAggregateAttribute.cs
- PartDesigner.cs
- HasCopySemanticsAttribute.cs
- EdmItemCollection.cs
- CharEnumerator.cs
- ExtractorMetadata.cs
- Effect.cs
- XamlStream.cs
- SqlMultiplexer.cs
- CodeThrowExceptionStatement.cs
- Scene3D.cs
- PackageRelationship.cs
- SqlWebEventProvider.cs
- COMException.cs
- XmlSignatureProperties.cs
- XmlSerializationGeneratedCode.cs
- ComponentTray.cs
- CanonicalXml.cs
- DefinitionProperties.cs
- DbgUtil.cs
- QueryUtil.cs
- Inline.cs
- EventHandlersStore.cs
- ConfigXmlText.cs
- MemoryResponseElement.cs
- ConstraintConverter.cs
- dtdvalidator.cs
- Imaging.cs
- Table.cs