Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Web / System / Web / Services / Protocols / RuntimeUtils.cs / 1305376 / RuntimeUtils.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Services.Protocols { using System.Web.Services; using System.Xml; using System.Xml.Schema; using System.Xml.Serialization; using System; using System.Text; using System.IO; using System.ComponentModel; using System.Globalization; using System.Web.Services.Diagnostics; internal class RuntimeUtils { private RuntimeUtils() { } internal static XmlDeserializationEvents GetDeserializationEvents() { XmlDeserializationEvents events = new XmlDeserializationEvents(); events.OnUnknownElement = new XmlElementEventHandler(OnUnknownElement); events.OnUnknownAttribute = new XmlAttributeEventHandler(OnUnknownAttribute); return events; } static void OnUnknownAttribute(object sender, XmlAttributeEventArgs e) { if (e.Attr == null) return; // ignore attributes from known namepsaces if (IsKnownNamespace(e.Attr.NamespaceURI)) return; Tracing.OnUnknownAttribute(sender, e); if (e.ExpectedAttributes == null) throw new InvalidOperationException(Res.GetString(Res.WebUnknownAttribute, e.Attr.Name, e.Attr.Value)); else if (e.ExpectedAttributes.Length == 0) throw new InvalidOperationException(Res.GetString(Res.WebUnknownAttribute2, e.Attr.Name, e.Attr.Value)); else throw new InvalidOperationException(Res.GetString(Res.WebUnknownAttribute3, e.Attr.Name, e.Attr.Value, e.ExpectedAttributes)); } internal static string ElementString(XmlElement element) { StringWriter xml = new StringWriter(CultureInfo.InvariantCulture); xml.Write("<"); xml.Write(element.Name); if (element.NamespaceURI != null && element.NamespaceURI.Length > 0) { xml.Write(" xmlns"); if (element.Prefix != null && element.Prefix.Length > 0) { xml.Write(":"); xml.Write(element.Prefix); } xml.Write("='"); xml.Write(element.NamespaceURI); xml.Write("'"); } xml.Write(">.."); xml.Write(element.Name); xml.Write(">"); return xml.ToString(); } internal static void OnUnknownElement(object sender, XmlElementEventArgs e) { if (e.Element == null) return; string xml = RuntimeUtils.ElementString(e.Element); Tracing.OnUnknownElement(sender, e); if (e.ExpectedElements == null) throw new InvalidOperationException(Res.GetString(Res.WebUnknownElement, xml)); else if (e.ExpectedElements.Length == 0) throw new InvalidOperationException(Res.GetString(Res.WebUnknownElement1, xml)); else throw new InvalidOperationException(Res.GetString(Res.WebUnknownElement2, xml, e.ExpectedElements)); } internal static bool IsKnownNamespace(string ns) { if (ns == XmlSchema.InstanceNamespace) return true; if (ns == Soap.XmlNamespace) return true; if (ns == Soap.Encoding || ns == Soap.Namespace) return true; if (ns == Soap12.Namespace || ns == Soap12.Encoding || ns == Soap12.RpcNamespace) return true; return false; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Services.Protocols { using System.Web.Services; using System.Xml; using System.Xml.Schema; using System.Xml.Serialization; using System; using System.Text; using System.IO; using System.ComponentModel; using System.Globalization; using System.Web.Services.Diagnostics; internal class RuntimeUtils { private RuntimeUtils() { } internal static XmlDeserializationEvents GetDeserializationEvents() { XmlDeserializationEvents events = new XmlDeserializationEvents(); events.OnUnknownElement = new XmlElementEventHandler(OnUnknownElement); events.OnUnknownAttribute = new XmlAttributeEventHandler(OnUnknownAttribute); return events; } static void OnUnknownAttribute(object sender, XmlAttributeEventArgs e) { if (e.Attr == null) return; // ignore attributes from known namepsaces if (IsKnownNamespace(e.Attr.NamespaceURI)) return; Tracing.OnUnknownAttribute(sender, e); if (e.ExpectedAttributes == null) throw new InvalidOperationException(Res.GetString(Res.WebUnknownAttribute, e.Attr.Name, e.Attr.Value)); else if (e.ExpectedAttributes.Length == 0) throw new InvalidOperationException(Res.GetString(Res.WebUnknownAttribute2, e.Attr.Name, e.Attr.Value)); else throw new InvalidOperationException(Res.GetString(Res.WebUnknownAttribute3, e.Attr.Name, e.Attr.Value, e.ExpectedAttributes)); } internal static string ElementString(XmlElement element) { StringWriter xml = new StringWriter(CultureInfo.InvariantCulture); xml.Write("<"); xml.Write(element.Name); if (element.NamespaceURI != null && element.NamespaceURI.Length > 0) { xml.Write(" xmlns"); if (element.Prefix != null && element.Prefix.Length > 0) { xml.Write(":"); xml.Write(element.Prefix); } xml.Write("='"); xml.Write(element.NamespaceURI); xml.Write("'"); } xml.Write(">.."); xml.Write(element.Name); xml.Write(">"); return xml.ToString(); } internal static void OnUnknownElement(object sender, XmlElementEventArgs e) { if (e.Element == null) return; string xml = RuntimeUtils.ElementString(e.Element); Tracing.OnUnknownElement(sender, e); if (e.ExpectedElements == null) throw new InvalidOperationException(Res.GetString(Res.WebUnknownElement, xml)); else if (e.ExpectedElements.Length == 0) throw new InvalidOperationException(Res.GetString(Res.WebUnknownElement1, xml)); else throw new InvalidOperationException(Res.GetString(Res.WebUnknownElement2, xml, e.ExpectedElements)); } internal static bool IsKnownNamespace(string ns) { if (ns == XmlSchema.InstanceNamespace) return true; if (ns == Soap.XmlNamespace) return true; if (ns == Soap.Encoding || ns == Soap.Namespace) return true; if (ns == Soap12.Namespace || ns == Soap12.Encoding || ns == Soap12.RpcNamespace) return true; return false; } } } // 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
- Span.cs
- MsmqChannelFactoryBase.cs
- WindowsSecurityToken.cs
- ConcurrentStack.cs
- IsolatedStorageFile.cs
- dataSvcMapFileLoader.cs
- ToolStripContentPanel.cs
- TraceEventCache.cs
- UndoEngine.cs
- TreeNodeBindingCollection.cs
- TransformGroup.cs
- AsyncOperationManager.cs
- BaseParser.cs
- WebPartDisplayModeCollection.cs
- BounceEase.cs
- TileBrush.cs
- BindUriHelper.cs
- SoundPlayer.cs
- PasswordTextNavigator.cs
- NullableFloatMinMaxAggregationOperator.cs
- TypeSemantics.cs
- ResolveNameEventArgs.cs
- ErrorWrapper.cs
- ConfigurationHelpers.cs
- PixelFormatConverter.cs
- TypeExtensions.cs
- ConstNode.cs
- RenderOptions.cs
- CallSite.cs
- Identifier.cs
- QueryContinueDragEvent.cs
- StrokeFIndices.cs
- GregorianCalendar.cs
- SafeLocalMemHandle.cs
- NativeMethods.cs
- PageCodeDomTreeGenerator.cs
- cache.cs
- QueryContinueDragEvent.cs
- XmlSerializerSection.cs
- RangeValidator.cs
- BamlCollectionHolder.cs
- ExceptionTrace.cs
- RegexFCD.cs
- SequentialUshortCollection.cs
- StorageModelBuildProvider.cs
- AtomMaterializerLog.cs
- Int16Storage.cs
- SingleAnimationBase.cs
- Int64Animation.cs
- RuntimeResourceSet.cs
- SqlColumnizer.cs
- VoiceInfo.cs
- ValueChangedEventManager.cs
- DataStreamFromComStream.cs
- OleStrCAMarshaler.cs
- Crc32Helper.cs
- ConfigurationManagerHelperFactory.cs
- SerializableAuthorizationContext.cs
- WindowsIdentity.cs
- DbConnectionInternal.cs
- DictionaryEntry.cs
- HttpCapabilitiesSectionHandler.cs
- JsonServiceDocumentSerializer.cs
- Translator.cs
- DataGridViewTopRowAccessibleObject.cs
- Deserializer.cs
- WebRequestModulesSection.cs
- AsyncResult.cs
- SqlDataAdapter.cs
- WebBrowserContainer.cs
- ControlPaint.cs
- DictionarySurrogate.cs
- IisTraceWebEventProvider.cs
- TextDecorations.cs
- InstanceDescriptor.cs
- TabletDeviceInfo.cs
- QuadraticBezierSegment.cs
- ExtensionDataObject.cs
- BrowserDefinition.cs
- GetMemberBinder.cs
- HyperLinkStyle.cs
- CheckBoxDesigner.cs
- SqlNodeTypeOperators.cs
- PeerCredentialElement.cs
- Char.cs
- ScalarOps.cs
- DrawingContextDrawingContextWalker.cs
- WebPartCatalogCloseVerb.cs
- BooleanAnimationUsingKeyFrames.cs
- XmlSerializer.cs
- DataGridDetailsPresenterAutomationPeer.cs
- BrushValueSerializer.cs
- ProcessHostMapPath.cs
- X509PeerCertificateAuthenticationElement.cs
- ApplicationServiceHelper.cs
- TrackingAnnotationCollection.cs
- MultipleViewProviderWrapper.cs
- XmlUrlEditor.cs
- NullPackagingPolicy.cs
- EntityDataSourceWrapperCollection.cs