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
- ISAPIRuntime.cs
- SyntaxCheck.cs
- RegisteredExpandoAttribute.cs
- TcpStreams.cs
- CharEnumerator.cs
- ETagAttribute.cs
- ObjectDataSourceFilteringEventArgs.cs
- SerializationEventsCache.cs
- COM2TypeInfoProcessor.cs
- DynamicILGenerator.cs
- SafeUserTokenHandle.cs
- WindowsAltTab.cs
- Form.cs
- WebPartDisplayModeEventArgs.cs
- EntityContainer.cs
- CodeDomConfigurationHandler.cs
- FamilyMap.cs
- DataSourceHelper.cs
- FieldTemplateFactory.cs
- ExpandSegment.cs
- WebPartActionVerb.cs
- ExcCanonicalXml.cs
- MimeMultiPart.cs
- SizeConverter.cs
- Int32CollectionValueSerializer.cs
- FilteredSchemaElementLookUpTable.cs
- InvalidFilterCriteriaException.cs
- CheckBoxAutomationPeer.cs
- CompiledQueryCacheEntry.cs
- SemaphoreFullException.cs
- OptimisticConcurrencyException.cs
- CapabilitiesUse.cs
- OleDbDataReader.cs
- GridLength.cs
- EntityTypeEmitter.cs
- RepeatInfo.cs
- HttpDebugHandler.cs
- InkSerializer.cs
- ProxyAttribute.cs
- TextLine.cs
- RegistryPermission.cs
- TextSpan.cs
- PasswordDeriveBytes.cs
- XmlValidatingReaderImpl.cs
- NavigationEventArgs.cs
- ProtectedConfigurationSection.cs
- GetCertificateRequest.cs
- AutomationProperties.cs
- CheckBox.cs
- VirtualPath.cs
- TransformProviderWrapper.cs
- InheritanceRules.cs
- GZipDecoder.cs
- SequenceDesigner.cs
- FillRuleValidation.cs
- ErasingStroke.cs
- AppDomainFactory.cs
- XmlSchemaComplexContentRestriction.cs
- SqlInfoMessageEvent.cs
- BufferedReadStream.cs
- processwaithandle.cs
- ObjectNotFoundException.cs
- EditingCommands.cs
- PermissionAttributes.cs
- StatusBar.cs
- UInt64Converter.cs
- RequestCacheEntry.cs
- EdmSchemaError.cs
- BindUriHelper.cs
- PageCache.cs
- IssuedSecurityTokenParameters.cs
- Types.cs
- ControlUtil.cs
- SafeNativeMethods.cs
- keycontainerpermission.cs
- AlternationConverter.cs
- complextypematerializer.cs
- Style.cs
- SqlDataSourceRefreshSchemaForm.cs
- DataRelation.cs
- OdbcUtils.cs
- Size3DConverter.cs
- TextStore.cs
- DataGridCaption.cs
- SqlUtil.cs
- GreenMethods.cs
- FormatConvertedBitmap.cs
- FeatureManager.cs
- ForeignKeyConstraint.cs
- RegexRunnerFactory.cs
- ApplicationCommands.cs
- SafeCryptoHandles.cs
- SpeakProgressEventArgs.cs
- XmlRawWriter.cs
- RangeValuePatternIdentifiers.cs
- DocumentationServerProtocol.cs
- ListBoxDesigner.cs
- GridViewItemAutomationPeer.cs
- StreamInfo.cs
- COM2PropertyBuilderUITypeEditor.cs