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;
///
///
/// [To be supplied.]
///
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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Matrix.cs
- Vars.cs
- SqlDataSourceView.cs
- DataGridViewRow.cs
- TimeIntervalCollection.cs
- SchemaElementLookUpTable.cs
- TrustLevel.cs
- XamlTypeMapper.cs
- WithStatement.cs
- RecognizerStateChangedEventArgs.cs
- MetadataItemSerializer.cs
- PixelFormatConverter.cs
- ServiceDeploymentInfo.cs
- XXXInfos.cs
- NonSerializedAttribute.cs
- TraceUtility.cs
- Byte.cs
- SafeUserTokenHandle.cs
- XNodeNavigator.cs
- EventLevel.cs
- TrackingStringDictionary.cs
- WS2007FederationHttpBindingCollectionElement.cs
- RenderData.cs
- DesignerProperties.cs
- DesignerWidgets.cs
- ExtendedTransformFactory.cs
- Size3DValueSerializer.cs
- SemanticBasicElement.cs
- InvalidDataException.cs
- EventSetter.cs
- SvcMapFileSerializer.cs
- StringBuilder.cs
- TemplateParser.cs
- DLinqColumnProvider.cs
- NavigationCommands.cs
- WorkflowWebHostingModule.cs
- ChannelCacheDefaults.cs
- ContentPresenter.cs
- MarginsConverter.cs
- LoadMessageLogger.cs
- StaticFileHandler.cs
- ConfigXmlComment.cs
- PolyLineSegmentFigureLogic.cs
- MachineKeySection.cs
- RegexGroupCollection.cs
- HwndTarget.cs
- HopperCache.cs
- DetailsViewCommandEventArgs.cs
- DynamicRendererThreadManager.cs
- _NetRes.cs
- WeakReadOnlyCollection.cs
- GeometryConverter.cs
- WebPartManager.cs
- FaultImportOptions.cs
- FixedSOMPage.cs
- CommandValueSerializer.cs
- DataTableReader.cs
- ListItemDetailViewAttribute.cs
- StringConverter.cs
- ExeContext.cs
- WebReferencesBuildProvider.cs
- DispatcherExceptionEventArgs.cs
- DateTimeValueSerializer.cs
- StrongTypingException.cs
- RSAOAEPKeyExchangeDeformatter.cs
- EncryptedType.cs
- XmlTypeMapping.cs
- Select.cs
- BufferedReadStream.cs
- CachedFontFamily.cs
- Msmq4SubqueuePoisonHandler.cs
- SqlNamer.cs
- PrintSystemException.cs
- ServiceManager.cs
- Semaphore.cs
- DefaultBindingPropertyAttribute.cs
- CheckBoxAutomationPeer.cs
- RealizationDrawingContextWalker.cs
- ApplicationFileCodeDomTreeGenerator.cs
- BasicKeyConstraint.cs
- SyndicationElementExtension.cs
- MarginCollapsingState.cs
- DataListItemCollection.cs
- OleDbConnectionInternal.cs
- EntityCollection.cs
- TerminateWorkflow.cs
- DataSourceDescriptorCollection.cs
- AmbientProperties.cs
- UInt16.cs
- MarkerProperties.cs
- BuildManagerHost.cs
- IssuerInformation.cs
- MailDefinitionBodyFileNameEditor.cs
- DummyDataSource.cs
- ReflectPropertyDescriptor.cs
- RichTextBox.cs
- RowToFieldTransformer.cs
- StringAttributeCollection.cs
- CodePageEncoding.cs
- TransformDescriptor.cs