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
- XsltException.cs
- WindowsIdentity.cs
- SafeMarshalContext.cs
- TrackingMemoryStream.cs
- XmlSchemaSimpleType.cs
- NameValuePermission.cs
- SqlInternalConnectionSmi.cs
- TdsParameterSetter.cs
- METAHEADER.cs
- ComponentFactoryHelpers.cs
- UnsafeNativeMethodsPenimc.cs
- CategoryAttribute.cs
- OrderByExpression.cs
- ToolStripStatusLabel.cs
- CqlWriter.cs
- CryptoProvider.cs
- Expander.cs
- Subtree.cs
- PrintingPermission.cs
- VideoDrawing.cs
- AsymmetricKeyExchangeFormatter.cs
- PropertyRecord.cs
- TextEditorSpelling.cs
- Stack.cs
- RequestUriProcessor.cs
- HybridDictionary.cs
- KeyPressEvent.cs
- MatcherBuilder.cs
- GenericTypeParameterBuilder.cs
- Page.cs
- HttpContext.cs
- DefaultProxySection.cs
- ColorContext.cs
- UrlMappingsSection.cs
- FontStretchConverter.cs
- LinqToSqlWrapper.cs
- TraceUtility.cs
- ImageMap.cs
- EpmCustomContentSerializer.cs
- EventPropertyMap.cs
- IDReferencePropertyAttribute.cs
- AlgoModule.cs
- PackWebRequest.cs
- WebPartZoneBase.cs
- LogicalChannel.cs
- WebPartCatalogCloseVerb.cs
- Compiler.cs
- PropertyConverter.cs
- ChannelManager.cs
- MsmqHostedTransportConfiguration.cs
- DataGridPageChangedEventArgs.cs
- DefaultParameterValueAttribute.cs
- BookmarkScopeInfo.cs
- DocumentReference.cs
- IPAddressCollection.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- MissingMemberException.cs
- CollectionBase.cs
- RuntimeEnvironment.cs
- oledbconnectionstring.cs
- FixUpCollection.cs
- XmlValidatingReaderImpl.cs
- LongValidatorAttribute.cs
- SafeNativeMethods.cs
- ConfigXmlAttribute.cs
- StateMachine.cs
- XmlFormatReaderGenerator.cs
- XmlNode.cs
- ExpressionContext.cs
- GlobalizationSection.cs
- JapaneseCalendar.cs
- XamlFxTrace.cs
- SpecialFolderEnumConverter.cs
- CompModSwitches.cs
- DocumentXPathNavigator.cs
- WhitespaceSignificantCollectionAttribute.cs
- IisTraceWebEventProvider.cs
- XamlWriterExtensions.cs
- Activity.cs
- OrderedHashRepartitionStream.cs
- ToolConsole.cs
- LayoutEvent.cs
- DesigntimeLicenseContext.cs
- MenuRendererClassic.cs
- CloudCollection.cs
- BitmapEffectInput.cs
- OdbcDataAdapter.cs
- NumberAction.cs
- DbProviderConfigurationHandler.cs
- EncodingStreamWrapper.cs
- PolicyDesigner.cs
- StylusPointPropertyUnit.cs
- Attributes.cs
- Ticks.cs
- UnauthorizedAccessException.cs
- WsdlInspector.cs
- WindowsListViewItemCheckBox.cs
- BaseCodePageEncoding.cs
- LinkButton.cs
- FontStretchConverter.cs