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
- MasterPageCodeDomTreeGenerator.cs
- Socket.cs
- DbDataAdapter.cs
- ProxyFragment.cs
- TypeSource.cs
- CancellableEnumerable.cs
- HttpApplicationStateWrapper.cs
- Accessible.cs
- WebBrowserUriTypeConverter.cs
- ColorBlend.cs
- RecognitionEventArgs.cs
- Compress.cs
- SecurityUtils.cs
- QueryCursorEventArgs.cs
- ChannelDemuxer.cs
- DispatchChannelSink.cs
- ConfigurationSettings.cs
- ProcessHostMapPath.cs
- MSG.cs
- CacheHelper.cs
- SecurityTimestamp.cs
- OfTypeExpression.cs
- CacheRequest.cs
- SiteMapDataSource.cs
- RenderData.cs
- MsmqInputChannel.cs
- DtcInterfaces.cs
- KoreanLunisolarCalendar.cs
- AnnotationHighlightLayer.cs
- nulltextcontainer.cs
- QilPatternVisitor.cs
- AsyncOperation.cs
- WindowsListViewGroup.cs
- Baml6ConstructorInfo.cs
- FrameDimension.cs
- ToolStripDesignerAvailabilityAttribute.cs
- InternalBase.cs
- RouteData.cs
- CriticalExceptions.cs
- XmlUrlResolver.cs
- UnsafeNativeMethods.cs
- SpoolingTaskBase.cs
- XmlElementList.cs
- AssemblyEvidenceFactory.cs
- MatrixValueSerializer.cs
- ResourceReferenceExpression.cs
- MenuItemStyleCollection.cs
- MsmqIntegrationChannelListener.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- XPathNodeList.cs
- StackSpiller.Bindings.cs
- XamlWrappingReader.cs
- CurrentTimeZone.cs
- SimpleFieldTemplateUserControl.cs
- MetadataItemEmitter.cs
- ConfigXmlComment.cs
- NameValuePermission.cs
- TraceListeners.cs
- QueryUtil.cs
- VoiceChangeEventArgs.cs
- IERequestCache.cs
- NotSupportedException.cs
- WpfGeneratedKnownProperties.cs
- TypeBuilderInstantiation.cs
- HierarchicalDataSourceIDConverter.cs
- GrammarBuilder.cs
- PositiveTimeSpanValidatorAttribute.cs
- PersistenceProviderDirectory.cs
- InstallerTypeAttribute.cs
- InfoCardProofToken.cs
- CacheDependency.cs
- objectquery_tresulttype.cs
- BufferAllocator.cs
- PackagePart.cs
- UIElement.cs
- StackOverflowException.cs
- GridViewDeletedEventArgs.cs
- XPathPatternParser.cs
- CapacityStreamGeometryContext.cs
- MediaEntryAttribute.cs
- ExternalException.cs
- ImmutableAssemblyCacheEntry.cs
- Errors.cs
- CommentGlyph.cs
- _ScatterGatherBuffers.cs
- RSAOAEPKeyExchangeFormatter.cs
- Invariant.cs
- DynamicDataRouteHandler.cs
- HttpWriter.cs
- Vars.cs
- SortKey.cs
- TreeBuilder.cs
- LinkUtilities.cs
- DashStyle.cs
- ExpandableObjectConverter.cs
- SiteMapNodeItemEventArgs.cs
- MiniParameterInfo.cs
- GridViewDeleteEventArgs.cs
- WindowsRebar.cs
- ApplicationManager.cs