Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / MustUnderstandSoapException.cs / 1 / MustUnderstandSoapException.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel { using System; using System.Xml; using System.Text; using System.Globalization; using System.Collections.ObjectModel; using System.ServiceModel.Channels; using System.Runtime.Serialization; [Serializable] internal class MustUnderstandSoapException : CommunicationException { // for serialization public MustUnderstandSoapException() { } protected MustUnderstandSoapException(SerializationInfo info, StreamingContext context) : base(info, context) { } CollectionnotUnderstoodHeaders; EnvelopeVersion envelopeVersion; public MustUnderstandSoapException(Collection notUnderstoodHeaders, EnvelopeVersion envelopeVersion) { this.notUnderstoodHeaders = notUnderstoodHeaders; this.envelopeVersion = envelopeVersion; } public Collection NotUnderstoodHeaders { get { return this.notUnderstoodHeaders; } } public EnvelopeVersion EnvelopeVersion { get { return this.envelopeVersion; } } internal Message ProvideFault(MessageVersion messageVersion) { string name = this.notUnderstoodHeaders[0].Name; string ns = this.notUnderstoodHeaders[0].Namespace; FaultCode code = new FaultCode(MessageStrings.MustUnderstandFault, this.envelopeVersion.Namespace); FaultReason reason = new FaultReason(SR.GetString(SR.SFxHeaderNotUnderstood, name, ns), CultureInfo.CurrentCulture); MessageFault fault = MessageFault.CreateFault(code, reason); string faultAction = messageVersion.Addressing.DefaultFaultAction; Message message = System.ServiceModel.Channels.Message.CreateMessage(messageVersion, fault, faultAction); if (this.envelopeVersion == EnvelopeVersion.Soap12) { this.AddNotUnderstoodHeaders(message.Headers); } return message; } void AddNotUnderstoodHeaders(MessageHeaders headers) { for (int i = 0; i < notUnderstoodHeaders.Count; ++i) { headers.Add(new NotUnderstoodHeader(notUnderstoodHeaders[i].Name, notUnderstoodHeaders[i].Namespace)); } } class NotUnderstoodHeader : MessageHeader { string notUnderstoodName; string notUnderstoodNs; public NotUnderstoodHeader(string name, string ns) { this.notUnderstoodName = name; this.notUnderstoodNs = ns; } public override string Name { get { return Message12Strings.NotUnderstood; } } public override string Namespace { get { return Message12Strings.Namespace; } } protected override void OnWriteStartHeader(XmlDictionaryWriter writer, MessageVersion messageVersion) { writer.WriteStartElement(this.Name, this.Namespace); writer.WriteXmlnsAttribute(null, notUnderstoodNs); writer.WriteStartAttribute(Message12Strings.QName); writer.WriteQualifiedName(notUnderstoodName, notUnderstoodNs); writer.WriteEndAttribute(); } protected override void OnWriteHeaderContents(XmlDictionaryWriter writer, MessageVersion messageVersion) { // empty } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SecurityKeyUsage.cs
- GenericXmlSecurityTokenAuthenticator.cs
- SmiTypedGetterSetter.cs
- Rfc2898DeriveBytes.cs
- SettingsPropertyCollection.cs
- XmlDataSource.cs
- SchemaAttDef.cs
- MexNamedPipeBindingCollectionElement.cs
- XmlQueryRuntime.cs
- XpsSerializationException.cs
- DocumentGridContextMenu.cs
- PropertyTab.cs
- ManagementQuery.cs
- BaseResourcesBuildProvider.cs
- WindowsUpDown.cs
- InvalidOleVariantTypeException.cs
- AdapterUtil.cs
- OdbcEnvironmentHandle.cs
- wmiutil.cs
- AspNetSynchronizationContext.cs
- BufferedGraphicsContext.cs
- TriState.cs
- TempFiles.cs
- CngKeyBlobFormat.cs
- FileSystemEnumerable.cs
- NCryptNative.cs
- ToggleProviderWrapper.cs
- ValueUnavailableException.cs
- TypeValidationEventArgs.cs
- XmlElement.cs
- Array.cs
- CurrentChangingEventArgs.cs
- XmlSchemaProviderAttribute.cs
- Scalars.cs
- SerializableAttribute.cs
- CapabilitiesAssignment.cs
- ClipboardData.cs
- SortQuery.cs
- ZeroOpNode.cs
- GeneralTransformGroup.cs
- HtmlInputControl.cs
- NamedPipeConnectionPoolSettingsElement.cs
- PrintDocument.cs
- VectorValueSerializer.cs
- DetailsViewModeEventArgs.cs
- Environment.cs
- ImageFormatConverter.cs
- CodeTypeMemberCollection.cs
- ScriptRef.cs
- DataGrid.cs
- _AutoWebProxyScriptWrapper.cs
- Point3DAnimation.cs
- _StreamFramer.cs
- ObjectToIdCache.cs
- CheckableControlBaseAdapter.cs
- VsPropertyGrid.cs
- OdbcParameterCollection.cs
- InternalEnumValidatorAttribute.cs
- _ConnectionGroup.cs
- Size.cs
- GridViewColumn.cs
- ProviderCollection.cs
- ClientFormsAuthenticationCredentials.cs
- ComboBoxAutomationPeer.cs
- RoutedCommand.cs
- DataColumnMapping.cs
- _Events.cs
- ChannelAcceptor.cs
- DataGrid.cs
- MyContact.cs
- TableProviderWrapper.cs
- CanonicalFontFamilyReference.cs
- EntityReference.cs
- datacache.cs
- WebPartEventArgs.cs
- ParameterCollection.cs
- CommandValueSerializer.cs
- SmtpDigestAuthenticationModule.cs
- TdsRecordBufferSetter.cs
- RoutedPropertyChangedEventArgs.cs
- CTreeGenerator.cs
- ConfigurationValidatorAttribute.cs
- DocumentReference.cs
- WebSysDisplayNameAttribute.cs
- TargetControlTypeAttribute.cs
- ItemsPresenter.cs
- Transaction.cs
- FlatButtonAppearance.cs
- ConfigurationManagerHelperFactory.cs
- SimpleHandlerFactory.cs
- SchemaNames.cs
- ColumnResult.cs
- ComPlusTypeValidator.cs
- CompositeCollection.cs
- _SecureChannel.cs
- SafeNativeMethodsMilCoreApi.cs
- WebBrowser.cs
- TimeBoundedCache.cs
- DataControlPagerLinkButton.cs
- EnvelopedSignatureTransform.cs