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
- ListCollectionView.cs
- FactoryRecord.cs
- FrameworkTextComposition.cs
- NameValueConfigurationCollection.cs
- EnvironmentPermission.cs
- ConfigXmlDocument.cs
- DataTableCollection.cs
- FileFormatException.cs
- CodeMemberEvent.cs
- FontFamily.cs
- Int32EqualityComparer.cs
- FreezableDefaultValueFactory.cs
- ScanQueryOperator.cs
- ParenExpr.cs
- Misc.cs
- PeerApplicationLaunchInfo.cs
- NominalTypeEliminator.cs
- RefType.cs
- CodeNamespaceImportCollection.cs
- Matrix.cs
- MonthCalendarDesigner.cs
- CodeSubDirectory.cs
- ForAllOperator.cs
- ReflectPropertyDescriptor.cs
- HttpEncoder.cs
- ObjectDataSource.cs
- ChildrenQuery.cs
- webproxy.cs
- ReachObjectContext.cs
- XhtmlBasicSelectionListAdapter.cs
- SafeCoTaskMem.cs
- RequestBringIntoViewEventArgs.cs
- HandlerBase.cs
- CodeObjectCreateExpression.cs
- ObjectContext.cs
- CompositeActivityValidator.cs
- PerformanceCounterPermission.cs
- BamlTreeNode.cs
- SchemaImporterExtensionsSection.cs
- PersonalizableTypeEntry.cs
- CmsUtils.cs
- CorrelationKeyCalculator.cs
- OdbcInfoMessageEvent.cs
- DataGridViewCellStyleBuilderDialog.cs
- MenuTracker.cs
- TemplateControlCodeDomTreeGenerator.cs
- TraceData.cs
- WorkItem.cs
- InputQueue.cs
- WmlTextViewAdapter.cs
- basecomparevalidator.cs
- SequentialUshortCollection.cs
- HtmlHistory.cs
- AuditLogLocation.cs
- MembershipValidatePasswordEventArgs.cs
- SamlAudienceRestrictionCondition.cs
- VisualTreeFlattener.cs
- BinaryConverter.cs
- Compiler.cs
- XsltArgumentList.cs
- OAVariantLib.cs
- TraceContext.cs
- _TimerThread.cs
- ShaderEffect.cs
- MultiPropertyDescriptorGridEntry.cs
- PinnedBufferMemoryStream.cs
- XamlReaderHelper.cs
- ProtocolsConfigurationHandler.cs
- ObjectViewEntityCollectionData.cs
- DrawToolTipEventArgs.cs
- HttpCachePolicyBase.cs
- QueryPageSettingsEventArgs.cs
- XmlSerializerAssemblyAttribute.cs
- HandlerFactoryCache.cs
- ScriptingJsonSerializationSection.cs
- ActivityScheduledQuery.cs
- FlowDocumentScrollViewer.cs
- ServicePointManager.cs
- MutexSecurity.cs
- SecurityChannelFactory.cs
- GridViewColumnHeaderAutomationPeer.cs
- followingsibling.cs
- BamlLocalizer.cs
- WorkflowApplicationAbortedException.cs
- SectionRecord.cs
- DataBindingExpressionBuilder.cs
- ChannelManager.cs
- StringStorage.cs
- Assert.cs
- ContentDefinition.cs
- XmlDownloadManager.cs
- CodeDelegateCreateExpression.cs
- EncoderParameter.cs
- ChtmlTextWriter.cs
- ImageMapEventArgs.cs
- SecurityState.cs
- SpinLock.cs
- RepeaterItemEventArgs.cs
- WebConfigurationManager.cs
- ICspAsymmetricAlgorithm.cs