Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / Serialization / System / Runtime / Serialization / XmlSerializableReader.cs / 1305376 / XmlSerializableReader.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.Runtime.Serialization
{
using System.IO;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Serialization;
using System.Diagnostics;
internal class XmlSerializableReader : XmlReader, IXmlLineInfo, IXmlTextParser
{
XmlReaderDelegator xmlReader;
int startDepth;
bool isRootEmptyElement;
XmlReader innerReader;
XmlReader InnerReader
{
get { return innerReader; }
}
internal void BeginRead(XmlReaderDelegator xmlReader)
{
if (xmlReader.NodeType != XmlNodeType.Element)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializerReadContext.CreateUnexpectedStateException(XmlNodeType.Element, xmlReader));
this.xmlReader = xmlReader;
this.startDepth = xmlReader.Depth;
this.innerReader = xmlReader.UnderlyingReader;
this.isRootEmptyElement = InnerReader.IsEmptyElement;
}
internal void EndRead()
{
if (isRootEmptyElement)
xmlReader.Read();
else
{
if (xmlReader.IsStartElement() && xmlReader.Depth == startDepth)
xmlReader.Read();
while (xmlReader.Depth > startDepth)
{
if (!xmlReader.Read())
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializerReadContext.CreateUnexpectedStateException(XmlNodeType.EndElement, xmlReader));
}
}
}
public override bool Read()
{
XmlReader reader = this.InnerReader;
if ( reader.Depth == startDepth )
{
if ( reader.NodeType == XmlNodeType.EndElement ||
( reader.NodeType == XmlNodeType.Element && reader.IsEmptyElement ) ) {
return false;
}
}
return reader.Read();
}
public override void Close()
{
throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(SR.GetString(SR.IXmlSerializableIllegalOperation)));
}
public override XmlReaderSettings Settings { get { return InnerReader.Settings; } }
public override XmlNodeType NodeType { get { return InnerReader.NodeType; } }
public override string Name { get { return InnerReader.Name; } }
public override string LocalName { get { return InnerReader.LocalName; } }
public override string NamespaceURI { get { return InnerReader.NamespaceURI; } }
public override string Prefix { get { return InnerReader.Prefix; } }
public override bool HasValue { get { return InnerReader.HasValue; } }
public override string Value { get { return InnerReader.Value; } }
public override int Depth { get { return InnerReader.Depth; } }
public override string BaseURI { get { return InnerReader.BaseURI; } }
public override bool IsEmptyElement { get { return InnerReader.IsEmptyElement; } }
public override bool IsDefault { get { return InnerReader.IsDefault; } }
public override char QuoteChar { get { return InnerReader.QuoteChar; } }
public override XmlSpace XmlSpace { get { return InnerReader.XmlSpace; } }
public override string XmlLang { get { return InnerReader.XmlLang; } }
public override IXmlSchemaInfo SchemaInfo { get { return InnerReader.SchemaInfo; } }
public override Type ValueType { get { return InnerReader.ValueType; } }
public override int AttributeCount { get { return InnerReader.AttributeCount; } }
public override string this[int i] { get { return InnerReader[i]; } }
public override string this[string name] { get { return InnerReader[name]; } }
public override string this[string name, string namespaceURI] { get { return InnerReader[name, namespaceURI]; } }
public override bool EOF { get { return InnerReader.EOF; } }
public override ReadState ReadState { get { return InnerReader.ReadState; } }
public override XmlNameTable NameTable { get { return InnerReader.NameTable; } }
public override bool CanResolveEntity { get { return InnerReader.CanResolveEntity; } }
public override bool CanReadBinaryContent { get { return InnerReader.CanReadBinaryContent; } }
public override bool CanReadValueChunk { get { return InnerReader.CanReadValueChunk; } }
public override bool HasAttributes { get { return InnerReader.HasAttributes; } }
public override string GetAttribute(string name) { return InnerReader.GetAttribute(name); }
public override string GetAttribute(string name, string namespaceURI) { return InnerReader.GetAttribute(name, namespaceURI); }
public override string GetAttribute(int i) { return InnerReader.GetAttribute(i); }
public override bool MoveToAttribute(string name) { return InnerReader.MoveToAttribute(name); }
public override bool MoveToAttribute(string name, string ns) { return InnerReader.MoveToAttribute(name, ns); }
public override void MoveToAttribute(int i) { InnerReader.MoveToAttribute(i); }
public override bool MoveToFirstAttribute() { return InnerReader.MoveToFirstAttribute(); }
public override bool MoveToNextAttribute() { return InnerReader.MoveToNextAttribute(); }
public override bool MoveToElement() { return InnerReader.MoveToElement(); }
public override string LookupNamespace(string prefix) { return InnerReader.LookupNamespace(prefix); }
public override bool ReadAttributeValue() { return InnerReader.ReadAttributeValue(); }
public override void ResolveEntity() { InnerReader.ResolveEntity(); }
public override bool IsStartElement() { return InnerReader.IsStartElement(); }
public override bool IsStartElement(string name) { return InnerReader.IsStartElement(name); }
public override bool IsStartElement(string localname, string ns) { return InnerReader.IsStartElement(localname, ns); }
public override XmlNodeType MoveToContent() { return InnerReader.MoveToContent(); }
public override object ReadContentAsObject() { return InnerReader.ReadContentAsObject(); }
public override bool ReadContentAsBoolean() { return InnerReader.ReadContentAsBoolean(); }
public override DateTime ReadContentAsDateTime() { return InnerReader.ReadContentAsDateTime(); }
public override double ReadContentAsDouble() { return InnerReader.ReadContentAsDouble(); }
public override int ReadContentAsInt() { return InnerReader.ReadContentAsInt(); }
public override long ReadContentAsLong() { return InnerReader.ReadContentAsLong(); }
public override string ReadContentAsString() { return InnerReader.ReadContentAsString(); }
public override object ReadContentAs(Type returnType, IXmlNamespaceResolver namespaceResolver) { return InnerReader.ReadContentAs(returnType, namespaceResolver); }
public override int ReadContentAsBase64(byte[] buffer, int index, int count) { return InnerReader.ReadContentAsBase64(buffer, index, count); }
public override int ReadContentAsBinHex(byte[] buffer, int index, int count) { return InnerReader.ReadContentAsBinHex(buffer, index, count); }
public override int ReadValueChunk(char[] buffer, int index, int count) { return InnerReader.ReadValueChunk(buffer, index, count); }
public override string ReadString() { return InnerReader.ReadString(); }
// IXmlTextParser members
bool IXmlTextParser.Normalized
{
get
{
IXmlTextParser xmlTextParser = InnerReader as IXmlTextParser;
return (xmlTextParser == null) ? xmlReader.Normalized : xmlTextParser.Normalized;
}
set
{
IXmlTextParser xmlTextParser = InnerReader as IXmlTextParser;
if (xmlTextParser == null)
xmlReader.Normalized = value;
else
xmlTextParser.Normalized = value;
}
}
WhitespaceHandling IXmlTextParser.WhitespaceHandling
{
get
{
IXmlTextParser xmlTextParser = InnerReader as IXmlTextParser;
return (xmlTextParser == null) ? xmlReader.WhitespaceHandling : xmlTextParser.WhitespaceHandling;
}
set
{
IXmlTextParser xmlTextParser = InnerReader as IXmlTextParser;
if (xmlTextParser == null)
xmlReader.WhitespaceHandling = value;
else
xmlTextParser.WhitespaceHandling = value;
}
}
// IXmlLineInfo members
bool IXmlLineInfo.HasLineInfo()
{
IXmlLineInfo xmlLineInfo = InnerReader as IXmlLineInfo;
return (xmlLineInfo == null) ? xmlReader.HasLineInfo() : xmlLineInfo.HasLineInfo();
}
int IXmlLineInfo.LineNumber
{
get
{
IXmlLineInfo xmlLineInfo = InnerReader as IXmlLineInfo;
return (xmlLineInfo == null) ? xmlReader.LineNumber : xmlLineInfo.LineNumber;
}
}
int IXmlLineInfo.LinePosition
{
get
{
IXmlLineInfo xmlLineInfo = InnerReader as IXmlLineInfo;
return (xmlLineInfo == null) ? xmlReader.LinePosition : xmlLineInfo.LinePosition;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.Runtime.Serialization
{
using System.IO;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Serialization;
using System.Diagnostics;
internal class XmlSerializableReader : XmlReader, IXmlLineInfo, IXmlTextParser
{
XmlReaderDelegator xmlReader;
int startDepth;
bool isRootEmptyElement;
XmlReader innerReader;
XmlReader InnerReader
{
get { return innerReader; }
}
internal void BeginRead(XmlReaderDelegator xmlReader)
{
if (xmlReader.NodeType != XmlNodeType.Element)
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializerReadContext.CreateUnexpectedStateException(XmlNodeType.Element, xmlReader));
this.xmlReader = xmlReader;
this.startDepth = xmlReader.Depth;
this.innerReader = xmlReader.UnderlyingReader;
this.isRootEmptyElement = InnerReader.IsEmptyElement;
}
internal void EndRead()
{
if (isRootEmptyElement)
xmlReader.Read();
else
{
if (xmlReader.IsStartElement() && xmlReader.Depth == startDepth)
xmlReader.Read();
while (xmlReader.Depth > startDepth)
{
if (!xmlReader.Read())
throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializerReadContext.CreateUnexpectedStateException(XmlNodeType.EndElement, xmlReader));
}
}
}
public override bool Read()
{
XmlReader reader = this.InnerReader;
if ( reader.Depth == startDepth )
{
if ( reader.NodeType == XmlNodeType.EndElement ||
( reader.NodeType == XmlNodeType.Element && reader.IsEmptyElement ) ) {
return false;
}
}
return reader.Read();
}
public override void Close()
{
throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(SR.GetString(SR.IXmlSerializableIllegalOperation)));
}
public override XmlReaderSettings Settings { get { return InnerReader.Settings; } }
public override XmlNodeType NodeType { get { return InnerReader.NodeType; } }
public override string Name { get { return InnerReader.Name; } }
public override string LocalName { get { return InnerReader.LocalName; } }
public override string NamespaceURI { get { return InnerReader.NamespaceURI; } }
public override string Prefix { get { return InnerReader.Prefix; } }
public override bool HasValue { get { return InnerReader.HasValue; } }
public override string Value { get { return InnerReader.Value; } }
public override int Depth { get { return InnerReader.Depth; } }
public override string BaseURI { get { return InnerReader.BaseURI; } }
public override bool IsEmptyElement { get { return InnerReader.IsEmptyElement; } }
public override bool IsDefault { get { return InnerReader.IsDefault; } }
public override char QuoteChar { get { return InnerReader.QuoteChar; } }
public override XmlSpace XmlSpace { get { return InnerReader.XmlSpace; } }
public override string XmlLang { get { return InnerReader.XmlLang; } }
public override IXmlSchemaInfo SchemaInfo { get { return InnerReader.SchemaInfo; } }
public override Type ValueType { get { return InnerReader.ValueType; } }
public override int AttributeCount { get { return InnerReader.AttributeCount; } }
public override string this[int i] { get { return InnerReader[i]; } }
public override string this[string name] { get { return InnerReader[name]; } }
public override string this[string name, string namespaceURI] { get { return InnerReader[name, namespaceURI]; } }
public override bool EOF { get { return InnerReader.EOF; } }
public override ReadState ReadState { get { return InnerReader.ReadState; } }
public override XmlNameTable NameTable { get { return InnerReader.NameTable; } }
public override bool CanResolveEntity { get { return InnerReader.CanResolveEntity; } }
public override bool CanReadBinaryContent { get { return InnerReader.CanReadBinaryContent; } }
public override bool CanReadValueChunk { get { return InnerReader.CanReadValueChunk; } }
public override bool HasAttributes { get { return InnerReader.HasAttributes; } }
public override string GetAttribute(string name) { return InnerReader.GetAttribute(name); }
public override string GetAttribute(string name, string namespaceURI) { return InnerReader.GetAttribute(name, namespaceURI); }
public override string GetAttribute(int i) { return InnerReader.GetAttribute(i); }
public override bool MoveToAttribute(string name) { return InnerReader.MoveToAttribute(name); }
public override bool MoveToAttribute(string name, string ns) { return InnerReader.MoveToAttribute(name, ns); }
public override void MoveToAttribute(int i) { InnerReader.MoveToAttribute(i); }
public override bool MoveToFirstAttribute() { return InnerReader.MoveToFirstAttribute(); }
public override bool MoveToNextAttribute() { return InnerReader.MoveToNextAttribute(); }
public override bool MoveToElement() { return InnerReader.MoveToElement(); }
public override string LookupNamespace(string prefix) { return InnerReader.LookupNamespace(prefix); }
public override bool ReadAttributeValue() { return InnerReader.ReadAttributeValue(); }
public override void ResolveEntity() { InnerReader.ResolveEntity(); }
public override bool IsStartElement() { return InnerReader.IsStartElement(); }
public override bool IsStartElement(string name) { return InnerReader.IsStartElement(name); }
public override bool IsStartElement(string localname, string ns) { return InnerReader.IsStartElement(localname, ns); }
public override XmlNodeType MoveToContent() { return InnerReader.MoveToContent(); }
public override object ReadContentAsObject() { return InnerReader.ReadContentAsObject(); }
public override bool ReadContentAsBoolean() { return InnerReader.ReadContentAsBoolean(); }
public override DateTime ReadContentAsDateTime() { return InnerReader.ReadContentAsDateTime(); }
public override double ReadContentAsDouble() { return InnerReader.ReadContentAsDouble(); }
public override int ReadContentAsInt() { return InnerReader.ReadContentAsInt(); }
public override long ReadContentAsLong() { return InnerReader.ReadContentAsLong(); }
public override string ReadContentAsString() { return InnerReader.ReadContentAsString(); }
public override object ReadContentAs(Type returnType, IXmlNamespaceResolver namespaceResolver) { return InnerReader.ReadContentAs(returnType, namespaceResolver); }
public override int ReadContentAsBase64(byte[] buffer, int index, int count) { return InnerReader.ReadContentAsBase64(buffer, index, count); }
public override int ReadContentAsBinHex(byte[] buffer, int index, int count) { return InnerReader.ReadContentAsBinHex(buffer, index, count); }
public override int ReadValueChunk(char[] buffer, int index, int count) { return InnerReader.ReadValueChunk(buffer, index, count); }
public override string ReadString() { return InnerReader.ReadString(); }
// IXmlTextParser members
bool IXmlTextParser.Normalized
{
get
{
IXmlTextParser xmlTextParser = InnerReader as IXmlTextParser;
return (xmlTextParser == null) ? xmlReader.Normalized : xmlTextParser.Normalized;
}
set
{
IXmlTextParser xmlTextParser = InnerReader as IXmlTextParser;
if (xmlTextParser == null)
xmlReader.Normalized = value;
else
xmlTextParser.Normalized = value;
}
}
WhitespaceHandling IXmlTextParser.WhitespaceHandling
{
get
{
IXmlTextParser xmlTextParser = InnerReader as IXmlTextParser;
return (xmlTextParser == null) ? xmlReader.WhitespaceHandling : xmlTextParser.WhitespaceHandling;
}
set
{
IXmlTextParser xmlTextParser = InnerReader as IXmlTextParser;
if (xmlTextParser == null)
xmlReader.WhitespaceHandling = value;
else
xmlTextParser.WhitespaceHandling = value;
}
}
// IXmlLineInfo members
bool IXmlLineInfo.HasLineInfo()
{
IXmlLineInfo xmlLineInfo = InnerReader as IXmlLineInfo;
return (xmlLineInfo == null) ? xmlReader.HasLineInfo() : xmlLineInfo.HasLineInfo();
}
int IXmlLineInfo.LineNumber
{
get
{
IXmlLineInfo xmlLineInfo = InnerReader as IXmlLineInfo;
return (xmlLineInfo == null) ? xmlReader.LineNumber : xmlLineInfo.LineNumber;
}
}
int IXmlLineInfo.LinePosition
{
get
{
IXmlLineInfo xmlLineInfo = InnerReader as IXmlLineInfo;
return (xmlLineInfo == null) ? xmlReader.LinePosition : xmlLineInfo.LinePosition;
}
}
}
}
// 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
- BamlResourceContent.cs
- WorkerRequest.cs
- BrowsableAttribute.cs
- DropShadowBitmapEffect.cs
- TrackBarDesigner.cs
- GlyphRunDrawing.cs
- BaseComponentEditor.cs
- LocationSectionRecord.cs
- Psha1DerivedKeyGeneratorHelper.cs
- GenericAuthenticationEventArgs.cs
- RectAnimationClockResource.cs
- EpmAttributeNameBuilder.cs
- HotCommands.cs
- XmlUnspecifiedAttribute.cs
- WebPartVerb.cs
- Funcletizer.cs
- TraceData.cs
- GetReadStreamResult.cs
- PathFigureCollection.cs
- Misc.cs
- GridSplitterAutomationPeer.cs
- HttpRequest.cs
- BypassElementCollection.cs
- CodeDomLoader.cs
- XamlClipboardData.cs
- Light.cs
- FileCodeGroup.cs
- MILUtilities.cs
- XamlSerializerUtil.cs
- TextComposition.cs
- TabControlEvent.cs
- AutomationPeer.cs
- HttpPostProtocolImporter.cs
- ComplexBindingPropertiesAttribute.cs
- ModulesEntry.cs
- ClientSettings.cs
- WorkflowApplicationTerminatedException.cs
- dataobject.cs
- RolePrincipal.cs
- FixedSOMLineRanges.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- ZeroOpNode.cs
- DbModificationClause.cs
- DataGridPageChangedEventArgs.cs
- NotFiniteNumberException.cs
- XsltArgumentList.cs
- TextShapeableCharacters.cs
- RadioButton.cs
- DbConnectionClosed.cs
- SystemIdentity.cs
- FrameworkPropertyMetadata.cs
- DateTimeValueSerializer.cs
- PropertyFilterAttribute.cs
- PerformanceCounterPermission.cs
- DataKey.cs
- X509SecurityTokenAuthenticator.cs
- TextReader.cs
- DispatcherHookEventArgs.cs
- PathGeometry.cs
- WithParamAction.cs
- StartFileNameEditor.cs
- SizeValueSerializer.cs
- externdll.cs
- SpellCheck.cs
- SmtpDigestAuthenticationModule.cs
- ReferenceTypeElement.cs
- BuildProvidersCompiler.cs
- ProfileSettingsCollection.cs
- CollectionViewGroup.cs
- DataGridState.cs
- MiniConstructorInfo.cs
- UshortList2.cs
- SqlCachedBuffer.cs
- DelegateBodyWriter.cs
- OneToOneMappingSerializer.cs
- ScriptResourceMapping.cs
- BitmapImage.cs
- WebSysDefaultValueAttribute.cs
- PropertyPathWorker.cs
- SymmetricCryptoHandle.cs
- ContentOnlyMessage.cs
- EnumValidator.cs
- TraceSwitch.cs
- GridViewRowPresenter.cs
- SchemaAttDef.cs
- GroupByQueryOperator.cs
- ExportFileRequest.cs
- ConfigXmlReader.cs
- StatusBar.cs
- Crypto.cs
- SmtpAuthenticationManager.cs
- RoleManagerEventArgs.cs
- InputLangChangeRequestEvent.cs
- SamlAuthorizationDecisionStatement.cs
- RootContext.cs
- PropertyPushdownHelper.cs
- SafeFileMappingHandle.cs
- _NestedMultipleAsyncResult.cs
- ClientScriptManagerWrapper.cs
- DesignerAdapterAttribute.cs