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
- HtmlShim.cs
- ScriptingJsonSerializationSection.cs
- CustomCredentialPolicy.cs
- HwndSource.cs
- ToggleButton.cs
- SignedPkcs7.cs
- CharacterString.cs
- TextUtf8RawTextWriter.cs
- HttpCookieCollection.cs
- ActivationServices.cs
- MultitargetUtil.cs
- figurelengthconverter.cs
- ExitEventArgs.cs
- CombinedGeometry.cs
- CodeExpressionRuleDeclaration.cs
- DataRecord.cs
- Component.cs
- StylusButtonEventArgs.cs
- ResourceExpressionBuilder.cs
- CacheMemory.cs
- SafeProcessHandle.cs
- BrowserCapabilitiesCodeGenerator.cs
- ClientTargetCollection.cs
- WindowsListViewItemStartMenu.cs
- PenLineCapValidation.cs
- MessageUtil.cs
- ContractNamespaceAttribute.cs
- TrailingSpaceComparer.cs
- StrokeCollectionConverter.cs
- BamlWriter.cs
- ListParagraph.cs
- MultipartIdentifier.cs
- XPathNode.cs
- RegexWorker.cs
- WebPartPersonalization.cs
- BitmapCache.cs
- WebPartConnectionsEventArgs.cs
- Rectangle.cs
- RowToParametersTransformer.cs
- ActivityBindForm.cs
- AlternateViewCollection.cs
- ManagementEventArgs.cs
- QueryableDataSource.cs
- OutputWindow.cs
- AdapterDictionary.cs
- LogicalExpr.cs
- SelectionEditor.cs
- UrlPath.cs
- FileDialogCustomPlacesCollection.cs
- ObjRef.cs
- RelationshipSet.cs
- ProgressBarHighlightConverter.cs
- SettingsAttributes.cs
- TextPointerBase.cs
- handlecollector.cs
- EditorZoneAutoFormat.cs
- OleDbWrapper.cs
- ScrollContentPresenter.cs
- DataServiceQuery.cs
- Int64AnimationBase.cs
- CustomAttributeSerializer.cs
- Enlistment.cs
- PrimitiveXmlSerializers.cs
- AsmxEndpointPickerExtension.cs
- SHA256Managed.cs
- _LocalDataStoreMgr.cs
- ComponentChangingEvent.cs
- xml.cs
- ForeignConstraint.cs
- TargetConverter.cs
- CategoryEditor.cs
- coordinator.cs
- MailFileEditor.cs
- SerializationInfo.cs
- ExecutionEngineException.cs
- ResXDataNode.cs
- contentDescriptor.cs
- TextPointer.cs
- TabControlCancelEvent.cs
- Blend.cs
- BatchServiceHost.cs
- HttpPostServerProtocol.cs
- ZoneButton.cs
- DbConnectionPool.cs
- ProfileGroupSettingsCollection.cs
- Bits.cs
- UriScheme.cs
- FlagsAttribute.cs
- XNodeNavigator.cs
- AssertFilter.cs
- UpdateManifestForBrowserApplication.cs
- FontFaceLayoutInfo.cs
- ProtectedProviderSettings.cs
- BindingEditor.xaml.cs
- DesignerAttribute.cs
- TransactionTable.cs
- SqlDataSourceCommandEventArgs.cs
- LoginUtil.cs
- RegexNode.cs
- Errors.cs