Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BaseCodeDomTreeGenerator.cs
- CommonDialog.cs
- StructuredTypeInfo.cs
- NoPersistProperty.cs
- _OverlappedAsyncResult.cs
- Automation.cs
- QueryCreatedEventArgs.cs
- HorizontalAlignConverter.cs
- WizardStepBase.cs
- ThreadSafeList.cs
- ColorBlend.cs
- KeyValueInternalCollection.cs
- ButtonBaseAutomationPeer.cs
- Vector3DValueSerializer.cs
- DynamicActivityXamlReader.cs
- RequestQueue.cs
- PreparingEnlistment.cs
- InternalPolicyElement.cs
- ScriptingSectionGroup.cs
- ListViewInsertionMark.cs
- DataGridViewColumnTypePicker.cs
- Menu.cs
- ActivityCodeDomReferenceService.cs
- XslException.cs
- PropertyGridEditorPart.cs
- NetStream.cs
- ObjectDataSourceView.cs
- oledbmetadatacollectionnames.cs
- ChannelServices.cs
- SystemDropShadowChrome.cs
- InOutArgument.cs
- PolyLineSegment.cs
- RenderingEventArgs.cs
- CalendarButton.cs
- TextParagraph.cs
- HuffCodec.cs
- TcpClientCredentialType.cs
- CompositeFontParser.cs
- BindingContext.cs
- EditorPartCollection.cs
- EmptyEnumerator.cs
- ReachPrintTicketSerializerAsync.cs
- COM2EnumConverter.cs
- NamespaceImport.cs
- ElementAtQueryOperator.cs
- GenericEnumerator.cs
- SqlInternalConnectionSmi.cs
- Rect3D.cs
- Quaternion.cs
- BaseParser.cs
- NamedElement.cs
- TypeUnloadedException.cs
- FilteredXmlReader.cs
- GC.cs
- CultureSpecificStringDictionary.cs
- SafeLibraryHandle.cs
- XmlBinaryReader.cs
- CalculatedColumn.cs
- Permission.cs
- Control.cs
- ConfigXmlSignificantWhitespace.cs
- Object.cs
- ManagementBaseObject.cs
- GenericsNotImplementedException.cs
- EdmToObjectNamespaceMap.cs
- _ConnectOverlappedAsyncResult.cs
- InboundActivityHelper.cs
- DrawingVisual.cs
- ComplexLine.cs
- XmlSigningNodeWriter.cs
- Inflater.cs
- SqlXmlStorage.cs
- PopupControlService.cs
- DependencyPropertyAttribute.cs
- SqlAliasesReferenced.cs
- RelativeSource.cs
- ComponentResourceKey.cs
- DataPagerField.cs
- TimelineGroup.cs
- NameValuePermission.cs
- relpropertyhelper.cs
- SizeAnimationClockResource.cs
- DropShadowBitmapEffect.cs
- DSASignatureFormatter.cs
- SourceFileBuildProvider.cs
- ECDsa.cs
- DataGridViewElement.cs
- OperatorExpressions.cs
- PointAnimationBase.cs
- BuildManagerHost.cs
- MiniMapControl.xaml.cs
- FixedPageAutomationPeer.cs
- ColumnWidthChangedEvent.cs
- AudioFormatConverter.cs
- PageHandlerFactory.cs
- FixedSchema.cs
- HwndHostAutomationPeer.cs
- NavigationCommands.cs
- PersistenceIOParticipant.cs
- DockPanel.cs