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
- TypeUtils.cs
- UnsignedPublishLicense.cs
- Header.cs
- GatewayDefinition.cs
- JsonDeserializer.cs
- OptionUsage.cs
- ISAPIRuntime.cs
- DmlSqlGenerator.cs
- ConfigurationPermission.cs
- DataBoundControl.cs
- ProfileInfo.cs
- PopOutPanel.cs
- BitmapEffectInput.cs
- DataGridViewDataConnection.cs
- HttpListener.cs
- ExtenderProvidedPropertyAttribute.cs
- ChtmlImageAdapter.cs
- QuestionEventArgs.cs
- SourceFilter.cs
- TaiwanCalendar.cs
- NonBatchDirectoryCompiler.cs
- KnownBoxes.cs
- ByeOperation11AsyncResult.cs
- Wildcard.cs
- NullToBooleanConverter.cs
- ValuePattern.cs
- SpinWait.cs
- ScriptBehaviorDescriptor.cs
- ColorAnimationUsingKeyFrames.cs
- SrgsElementFactoryCompiler.cs
- XmlDocumentViewSchema.cs
- tabpagecollectioneditor.cs
- ConfigXmlCDataSection.cs
- FormattedTextSymbols.cs
- StorageConditionPropertyMapping.cs
- ExtensionWindow.cs
- AsymmetricSignatureDeformatter.cs
- columnmapkeybuilder.cs
- AdapterUtil.cs
- ExpressionBinding.cs
- MeasureItemEvent.cs
- SerTrace.cs
- IpcManager.cs
- Wizard.cs
- ArgumentValidation.cs
- ComMethodElement.cs
- ProxyHelper.cs
- StoragePropertyMapping.cs
- StylusDownEventArgs.cs
- IUnknownConstantAttribute.cs
- PerformanceCounterPermissionAttribute.cs
- HideDisabledControlAdapter.cs
- EdmSchemaError.cs
- PolicyUnit.cs
- JsonClassDataContract.cs
- LoginDesigner.cs
- HotCommands.cs
- CollectionDataContract.cs
- DefaultProxySection.cs
- RectAnimationBase.cs
- DescendantQuery.cs
- FieldDescriptor.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- CreateUserWizard.cs
- ButtonAutomationPeer.cs
- PublisherMembershipCondition.cs
- FormViewRow.cs
- DataTemplateKey.cs
- Formatter.cs
- SynthesizerStateChangedEventArgs.cs
- IgnoreDataMemberAttribute.cs
- TracingConnectionListener.cs
- InputQueueChannelAcceptor.cs
- Table.cs
- HtmlSelect.cs
- HostedTransportConfigurationBase.cs
- CodeCatchClauseCollection.cs
- FileStream.cs
- TextHidden.cs
- MessageLoggingElement.cs
- RequestCacheManager.cs
- OrCondition.cs
- QuotedPairReader.cs
- SqlErrorCollection.cs
- WebServiceEndpoint.cs
- FunctionNode.cs
- ClientBuildManager.cs
- invalidudtexception.cs
- HMACMD5.cs
- BuildProviderAppliesToAttribute.cs
- XmlTextReaderImplHelpers.cs
- WebPartManager.cs
- XmlConvert.cs
- HierarchicalDataSourceConverter.cs
- SynchronizationLockException.cs
- BufferedReceiveManager.cs
- FullTextBreakpoint.cs
- HttpFileCollection.cs
- IDispatchConstantAttribute.cs
- VersionedStreamOwner.cs