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
- NavigationProperty.cs
- DataSourceCacheDurationConverter.cs
- PropertyConverter.cs
- SqlException.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- ProcessManager.cs
- LambdaCompiler.Address.cs
- ToolStripHighContrastRenderer.cs
- LinqDataSourceDeleteEventArgs.cs
- FileLogRecordStream.cs
- OdbcConnection.cs
- StrongNameKeyPair.cs
- CheckBoxDesigner.cs
- ButtonChrome.cs
- DataControlLinkButton.cs
- WebScriptMetadataFormatter.cs
- TemplatedEditableDesignerRegion.cs
- Geometry.cs
- DropShadowBitmapEffect.cs
- SimpleColumnProvider.cs
- MaskedTextBoxDesigner.cs
- ButtonFieldBase.cs
- CompositeKey.cs
- FileUpload.cs
- IPAddressCollection.cs
- HtmlFormAdapter.cs
- WebBrowser.cs
- Int64Animation.cs
- XmlExpressionDumper.cs
- EntityParameter.cs
- MimeMapping.cs
- AvTrace.cs
- TransferRequestHandler.cs
- TrustSection.cs
- RegisteredArrayDeclaration.cs
- Item.cs
- SearchForVirtualItemEventArgs.cs
- ProfilePropertySettings.cs
- HtmlForm.cs
- ReferencedAssembly.cs
- XmlIgnoreAttribute.cs
- UniqueSet.cs
- GenericIdentity.cs
- MailAddress.cs
- Quad.cs
- DocumentSchemaValidator.cs
- HWStack.cs
- XPathAncestorQuery.cs
- SingleConverter.cs
- EventsTab.cs
- WebServiceMethodData.cs
- GrammarBuilderPhrase.cs
- TextSelectionProcessor.cs
- ParameterBuilder.cs
- SchemaNames.cs
- FontStyles.cs
- PtsContext.cs
- PersonalizationStateInfo.cs
- BaseContextMenu.cs
- CompositionDesigner.cs
- GridViewRow.cs
- Int32Collection.cs
- Currency.cs
- ActivationArguments.cs
- ConnectionStringsExpressionBuilder.cs
- WindowsFormsSynchronizationContext.cs
- HyperLinkDesigner.cs
- DbConnectionFactory.cs
- InstanceOwner.cs
- ServerIdentity.cs
- CodeCommentStatementCollection.cs
- OpCopier.cs
- TextContainerHelper.cs
- PageParserFilter.cs
- SharedPersonalizationStateInfo.cs
- TreeViewImageIndexConverter.cs
- Grant.cs
- SHA1Managed.cs
- FieldMetadata.cs
- ResetableIterator.cs
- Scalars.cs
- Freezable.cs
- FileUtil.cs
- HtmlEmptyTagControlBuilder.cs
- FrameworkName.cs
- FileSystemEnumerable.cs
- XmlEnumAttribute.cs
- InvalidOperationException.cs
- Attachment.cs
- _FtpDataStream.cs
- SmiMetaData.cs
- SqlUtils.cs
- XmlEncodedRawTextWriter.cs
- ServiceOperationListItemList.cs
- COM2PropertyBuilderUITypeEditor.cs
- SelectingProviderEventArgs.cs
- CaretElement.cs
- ResourcesGenerator.cs
- ScalarOps.cs
- DbCommandTree.cs