Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Web / System / Web / Services / Protocols / SoapUnknownHeader.cs / 1305376 / SoapUnknownHeader.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Services.Protocols { using System.Web.Services; using System.Xml.Serialization; using System; using System.Reflection; using System.Xml; using System.Collections; using System.IO; using System.ComponentModel; ////// /// public sealed class SoapUnknownHeader : SoapHeader { XmlElement element; ///[To be supplied.] ////// /// [XmlIgnore] public XmlElement Element { get { if (element == null) return null; if (version == SoapProtocolVersion.Soap12) { // need to fix up mustUnderstand and actor attributes for soap 1.2 if (InternalMustUnderstand) { element.SetAttribute(Soap.Attribute.MustUnderstand, Soap12.Namespace, "1"); } element.RemoveAttribute(Soap.Attribute.MustUnderstand, Soap.Namespace); string actor = InternalActor; if (actor != null && actor.Length != 0) { element.SetAttribute(Soap12.Attribute.Role, Soap12.Namespace, actor); } element.RemoveAttribute(Soap.Attribute.Actor, Soap.Namespace); } else if (version == SoapProtocolVersion.Soap11) { // need to fix up mustUnderstand and actor attributes for soap 1.1 // also remove relay attribute since it only applies to soap 1.2 if (InternalMustUnderstand) { element.SetAttribute(Soap.Attribute.MustUnderstand, Soap.Namespace, "1"); } element.RemoveAttribute(Soap.Attribute.MustUnderstand, Soap12.Namespace); string actor = InternalActor; if (actor != null && actor.Length != 0) { element.SetAttribute(Soap.Attribute.Actor, Soap.Namespace, actor); } element.RemoveAttribute(Soap12.Attribute.Role, Soap12.Namespace); element.RemoveAttribute(Soap12.Attribute.Relay, Soap12.Namespace); } return element; } set { if (value == null && element != null) { // save off the mustUnderstand/actor values before they go away base.InternalMustUnderstand = InternalMustUnderstand; base.InternalActor = InternalActor; } element = value; } } internal override bool InternalMustUnderstand { get { if (element == null) return base.InternalMustUnderstand; string elementMustUnderstand = GetElementAttribute(Soap.Attribute.MustUnderstand, Soap.Namespace, element); if (elementMustUnderstand == null) { elementMustUnderstand = GetElementAttribute(Soap.Attribute.MustUnderstand, Soap12.Namespace, element); if (elementMustUnderstand == null) return false; } switch (elementMustUnderstand) { case "false": case "0": return false; case "true": case "1": return true; default: return false; } } set { base.InternalMustUnderstand = value; if (element != null) { if (value) element.SetAttribute(Soap.Attribute.MustUnderstand, Soap.Namespace, "1"); else element.RemoveAttribute(Soap.Attribute.MustUnderstand, Soap.Namespace); element.RemoveAttribute(Soap.Attribute.MustUnderstand, Soap12.Namespace); } } } internal override string InternalActor { get { if (element == null) return base.InternalActor; string elementActor = GetElementAttribute(Soap.Attribute.Actor, Soap.Namespace, element); if (elementActor == null) { elementActor = GetElementAttribute(Soap12.Attribute.Role, Soap12.Namespace, element); if (elementActor == null) return ""; } return elementActor; } set { base.InternalActor = value; if (element != null) { if (value == null || value.Length == 0) element.RemoveAttribute(Soap.Attribute.Actor, Soap.Namespace); else element.SetAttribute(Soap.Attribute.Actor, Soap.Namespace, value); element.RemoveAttribute(Soap12.Attribute.Role, Soap12.Namespace); } } } internal override bool InternalRelay { get { if (element == null) return base.InternalRelay; string elementRelay = GetElementAttribute(Soap12.Attribute.Relay, Soap12.Namespace, element); if (elementRelay == null) return false; switch (elementRelay) { case "false": case "0": return false; case "true": case "1": return true; default: return false; } } set { base.InternalRelay = value; if (element != null) { if (value) element.SetAttribute(Soap12.Attribute.Relay, Soap12.Namespace, "1"); else element.RemoveAttribute(Soap12.Attribute.Relay, Soap12.Namespace); } } } private string GetElementAttribute(string name, string ns, XmlElement element) { if (element == null) return null; if (element.Prefix.Length == 0 && element.NamespaceURI == ns) { if (element.HasAttribute(name)) return element.GetAttribute(name); else return null; } else { if (element.HasAttribute(name, ns)) return element.GetAttribute(name, ns); else return null; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.[To be supplied.] ///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- _LocalDataStore.cs
- ValueSerializerAttribute.cs
- Column.cs
- ProfilePropertySettingsCollection.cs
- SchemaImporterExtensionElement.cs
- Converter.cs
- UriTemplateClientFormatter.cs
- BitVector32.cs
- DataGridPagingPage.cs
- LinearGradientBrush.cs
- _NegotiateClient.cs
- TreeViewItem.cs
- Triangle.cs
- AutomationElementIdentifiers.cs
- AsyncContentLoadedEventArgs.cs
- FileLogRecord.cs
- ToolStripPanelRenderEventArgs.cs
- GridViewRowPresenterBase.cs
- WeakRefEnumerator.cs
- PropertyInfoSet.cs
- CompositionAdorner.cs
- DataBindingCollection.cs
- MetricEntry.cs
- SoapTypeAttribute.cs
- ClientBuildManager.cs
- HttpCacheVary.cs
- ChildTable.cs
- SafeThreadHandle.cs
- IDataContractSurrogate.cs
- ConnectionStringsExpressionBuilder.cs
- FormViewDeletedEventArgs.cs
- Binding.cs
- TracedNativeMethods.cs
- OptimalTextSource.cs
- ErrorEventArgs.cs
- HotSpotCollectionEditor.cs
- SQLMembershipProvider.cs
- ObjRef.cs
- DataTableReader.cs
- SqlParameter.cs
- AutomationElement.cs
- EditorZoneBase.cs
- DefaultTextStoreTextComposition.cs
- OperationValidationEventArgs.cs
- TextShapeableCharacters.cs
- RectAnimation.cs
- WebSysDescriptionAttribute.cs
- LinkedResourceCollection.cs
- CheckBoxAutomationPeer.cs
- HttpListenerRequest.cs
- ChangePassword.cs
- FindResponse.cs
- ToolStrip.cs
- counter.cs
- RemoteWebConfigurationHostStream.cs
- InputProcessorProfilesLoader.cs
- GeometryHitTestParameters.cs
- Dispatcher.cs
- XamlClipboardData.cs
- SessionState.cs
- AssociationTypeEmitter.cs
- CompiledQueryCacheEntry.cs
- ReliabilityContractAttribute.cs
- DirectoryRedirect.cs
- ExtendedPropertyCollection.cs
- WebPartExportVerb.cs
- PenThread.cs
- WindowsIPAddress.cs
- _UncName.cs
- EntityDataSourceWrapper.cs
- EndpointBehaviorElement.cs
- AdornerLayer.cs
- FilterQueryOptionExpression.cs
- SrgsDocument.cs
- RequestSecurityToken.cs
- PictureBox.cs
- SlotInfo.cs
- RequestCacheValidator.cs
- MenuItemBinding.cs
- ProxyElement.cs
- HttpFileCollection.cs
- StringAnimationUsingKeyFrames.cs
- Queue.cs
- ADRoleFactoryConfiguration.cs
- odbcmetadatacollectionnames.cs
- HwndMouseInputProvider.cs
- dsa.cs
- HandleCollector.cs
- DirectoryNotFoundException.cs
- ASCIIEncoding.cs
- DecimalConstantAttribute.cs
- Dynamic.cs
- LicenseProviderAttribute.cs
- EntityType.cs
- ZipIOFileItemStream.cs
- AttributeUsageAttribute.cs
- GACMembershipCondition.cs
- WinInetCache.cs
- ListManagerBindingsCollection.cs
- SessionKeyExpiredException.cs