Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / Serialization / System / Runtime / Serialization / XmlSerializableServices.cs / 1 / XmlSerializableServices.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
using System.Xml.Schema;
using System.Xml.XPath;
using System.Security;
namespace System.Runtime.Serialization
{
public static class XmlSerializableServices
{
///
/// Review - Static fields are marked SecurityCritical or readonly to prevent
/// data from being modified or leaked to other components in appdomain.
///
[SecurityRequiresReview]
internal static readonly string ReadNodesMethodName = "ReadNodes";
public static XmlNode[] ReadNodes(XmlReader xmlReader)
{
if (xmlReader == null)
throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("xmlReader");
XmlDocument doc = new XmlDocument();
List nodeList = new List();
if (xmlReader.MoveToFirstAttribute())
{
do
{
if (IsValidAttribute(xmlReader))
{
XmlNode node = doc.ReadNode(xmlReader);
if (node == null)
throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(SR.GetString(SR.UnexpectedEndOfFile)));
nodeList.Add(node);
}
} while (xmlReader.MoveToNextAttribute());
}
xmlReader.MoveToElement();
if (!xmlReader.IsEmptyElement)
{
int startDepth = xmlReader.Depth;
xmlReader.Read();
while (xmlReader.Depth > startDepth && xmlReader.NodeType != XmlNodeType.EndElement)
{
XmlNode node = doc.ReadNode(xmlReader);
if (node == null)
throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(SR.GetString(SR.UnexpectedEndOfFile)));
nodeList.Add(node);
}
}
return nodeList.ToArray();
}
private static bool IsValidAttribute(XmlReader xmlReader)
{
return xmlReader.NamespaceURI != Globals.SerializationNamespace &&
xmlReader.NamespaceURI != Globals.SchemaInstanceNamespace &&
xmlReader.Prefix != "xmlns" &&
xmlReader.LocalName != "xmlns";
}
internal static string WriteNodesMethodName = "WriteNodes";
public static void WriteNodes(XmlWriter xmlWriter, XmlNode[] nodes)
{
if (xmlWriter == null)
throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("xmlWriter");
if (nodes != null)
for(int i=0;i
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- VersionedStreamOwner.cs
- CSharpCodeProvider.cs
- PageCopyCount.cs
- MouseBinding.cs
- ReceiveMessageRecord.cs
- WeakRefEnumerator.cs
- KeyValueSerializer.cs
- SQLMoneyStorage.cs
- IncrementalCompileAnalyzer.cs
- DictionaryContent.cs
- Pair.cs
- CuspData.cs
- SystemResourceHost.cs
- AnimationTimeline.cs
- VariableQuery.cs
- BaseHashHelper.cs
- TypeForwardedFromAttribute.cs
- CryptoConfig.cs
- RootDesignerSerializerAttribute.cs
- ArraySet.cs
- WebPartHeaderCloseVerb.cs
- Decoder.cs
- Vector3DAnimation.cs
- DataSourceViewSchemaConverter.cs
- CustomPopupPlacement.cs
- OleDbConnectionFactory.cs
- IPCCacheManager.cs
- EncoderReplacementFallback.cs
- RegistryExceptionHelper.cs
- TextSelectionHelper.cs
- HyperLink.cs
- MimeTypeMapper.cs
- TypeSource.cs
- Atom10FormatterFactory.cs
- CAGDesigner.cs
- ConfigXmlCDataSection.cs
- embossbitmapeffect.cs
- formatter.cs
- MessageDecoder.cs
- SystemMulticastIPAddressInformation.cs
- _LocalDataStoreMgr.cs
- IndexerNameAttribute.cs
- NativeMethods.cs
- Attributes.cs
- XmlNamespaceMapping.cs
- ChildChangedEventArgs.cs
- CodeDomExtensionMethods.cs
- SymbolEqualComparer.cs
- OciEnlistContext.cs
- WebConfigurationHostFileChange.cs
- GenerateScriptTypeAttribute.cs
- NavigationProperty.cs
- ByteStreamGeometryContext.cs
- TcpAppDomainProtocolHandler.cs
- NotCondition.cs
- ResourceDescriptionAttribute.cs
- SafeMarshalContext.cs
- StrongNameSignatureInformation.cs
- StateDesigner.Layouts.cs
- PackageDocument.cs
- ApplicationServicesHostFactory.cs
- NameValueConfigurationCollection.cs
- SerializerWriterEventHandlers.cs
- PopupEventArgs.cs
- DependencyPropertyKind.cs
- TimeSpanMinutesConverter.cs
- IFlowDocumentViewer.cs
- XamlFilter.cs
- FileDialogCustomPlace.cs
- AssemblyCache.cs
- HttpCookiesSection.cs
- SoapTypeAttribute.cs
- UrlMapping.cs
- MobilePage.cs
- ZoneIdentityPermission.cs
- DeferredSelectedIndexReference.cs
- QilXmlReader.cs
- InvalidOperationException.cs
- SafeLibraryHandle.cs
- TrustLevelCollection.cs
- GridSplitter.cs
- WebDescriptionAttribute.cs
- XmlSchemaImporter.cs
- BreadCrumbTextConverter.cs
- MemoryStream.cs
- DrawingCollection.cs
- PropertyManager.cs
- ArrayWithOffset.cs
- DataRelationPropertyDescriptor.cs
- PropertyTab.cs
- RuntimeConfigurationRecord.cs
- ComponentRenameEvent.cs
- InstanceLockException.cs
- QueueProcessor.cs
- TypedElement.cs
- HtmlAnchor.cs
- SignatureToken.cs
- TreeNodeStyleCollectionEditor.cs
- unitconverter.cs
- IsolatedStorageFileStream.cs