Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- LinkedResourceCollection.cs
- WebFormDesignerActionService.cs
- ISFClipboardData.cs
- PropertyDescriptorCollection.cs
- TargetConverter.cs
- LocatorGroup.cs
- Int32KeyFrameCollection.cs
- DetailsViewCommandEventArgs.cs
- DataSourceXmlSerializer.cs
- XPathConvert.cs
- TextViewSelectionProcessor.cs
- ExtensibleClassFactory.cs
- AnnotationHelper.cs
- BoundField.cs
- QueryableDataSourceHelper.cs
- PtsHelper.cs
- FormatterConverter.cs
- CmsInterop.cs
- MailDefinition.cs
- WebConfigManager.cs
- ToolStripContentPanel.cs
- SafeNativeMethods.cs
- WebPartConnectVerb.cs
- ListenerElementsCollection.cs
- Logging.cs
- ButtonBaseAdapter.cs
- StorageMappingItemCollection.cs
- MLangCodePageEncoding.cs
- BitmapEffectCollection.cs
- DataGridViewTextBoxColumn.cs
- StrokeDescriptor.cs
- IInstanceTable.cs
- TextTreeTextNode.cs
- NetworkCredential.cs
- ExternalFile.cs
- StylusPointPropertyInfoDefaults.cs
- GrammarBuilderRuleRef.cs
- WindowsGraphics.cs
- StreamWriter.cs
- Baml6Assembly.cs
- ProcessThread.cs
- TextServicesCompartmentEventSink.cs
- MeasureItemEvent.cs
- XD.cs
- CompositeFontFamily.cs
- Calendar.cs
- CalendarItem.cs
- Assert.cs
- DbTransaction.cs
- Token.cs
- BulletChrome.cs
- Size.cs
- Source.cs
- DynamicObjectAccessor.cs
- CTreeGenerator.cs
- LinqDataSourceStatusEventArgs.cs
- ApplicationHost.cs
- ChannelManager.cs
- NetworkInformationPermission.cs
- safemediahandle.cs
- Win32Interop.cs
- SourceSwitch.cs
- ChtmlTextBoxAdapter.cs
- CommandDevice.cs
- DebuggerAttributes.cs
- WebBrowserProgressChangedEventHandler.cs
- DelayDesigner.cs
- TypeDescriptionProvider.cs
- Parallel.cs
- FigureHelper.cs
- InputLanguageCollection.cs
- DataControlPagerLinkButton.cs
- ThreadSafeList.cs
- RegexInterpreter.cs
- PkcsUtils.cs
- ListViewItemSelectionChangedEvent.cs
- TextProperties.cs
- CompositeControlDesigner.cs
- MailDefinitionBodyFileNameEditor.cs
- DoubleLinkList.cs
- Missing.cs
- GridViewUpdateEventArgs.cs
- DataSourceCache.cs
- AnnotationResource.cs
- DragSelectionMessageFilter.cs
- WebPartConnectionsConfigureVerb.cs
- AssociationTypeEmitter.cs
- BufferedConnection.cs
- ControlAdapter.cs
- Span.cs
- PageCodeDomTreeGenerator.cs
- Ticks.cs
- ScrollPattern.cs
- RoleManagerSection.cs
- PersonalizationStateInfoCollection.cs
- CompositeScriptReferenceEventArgs.cs
- Aes.cs
- DataGridPagerStyle.cs
- dataobject.cs
- XmlSchemaGroupRef.cs