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
- LongValidatorAttribute.cs
- URLMembershipCondition.cs
- WindowsRebar.cs
- StateMachineSubscriptionManager.cs
- BitmapPalettes.cs
- MulticastIPAddressInformationCollection.cs
- TCPListener.cs
- Parsers.cs
- HtmlPageAdapter.cs
- SHA512.cs
- InputScopeAttribute.cs
- ParameterCollection.cs
- MethodRental.cs
- DataControlCommands.cs
- ImageSource.cs
- Convert.cs
- Application.cs
- Empty.cs
- DataGridViewColumnHeaderCell.cs
- HttpRequestMessageProperty.cs
- FontSource.cs
- PropertyChangedEventArgs.cs
- CellRelation.cs
- FlowLayoutPanel.cs
- datacache.cs
- MetaModel.cs
- UserControlBuildProvider.cs
- DataGridTextBoxColumn.cs
- TableLayoutPanel.cs
- GlyphManager.cs
- TouchEventArgs.cs
- ObjectListItem.cs
- ExceptionUtil.cs
- ToolStripControlHost.cs
- ConfigurationProperty.cs
- CFGGrammar.cs
- QueryContinueDragEventArgs.cs
- BitSet.cs
- SetterBase.cs
- PageContent.cs
- ListViewSelectEventArgs.cs
- StyleHelper.cs
- UITypeEditor.cs
- EmptyControlCollection.cs
- DataBoundLiteralControl.cs
- BamlTreeNode.cs
- Freezable.cs
- ActiveDocumentEvent.cs
- OptimalBreakSession.cs
- SharedUtils.cs
- GrammarBuilderDictation.cs
- filewebrequest.cs
- DataGridViewBindingCompleteEventArgs.cs
- HttpClientCertificate.cs
- EventLogPermissionEntry.cs
- FontFamily.cs
- unsafenativemethodsother.cs
- SafeBitVector32.cs
- thaishape.cs
- CodeMemberMethod.cs
- PreviewKeyDownEventArgs.cs
- UiaCoreApi.cs
- OleDbStruct.cs
- Int64.cs
- HttpWebResponse.cs
- XmlSerializerVersionAttribute.cs
- _SslState.cs
- RequestDescription.cs
- EntryIndex.cs
- FixedTextPointer.cs
- Win32.cs
- DataSourceXmlSubItemAttribute.cs
- ControllableStoryboardAction.cs
- StructuralType.cs
- ImageMapEventArgs.cs
- CompiledQueryCacheEntry.cs
- ClientUIRequest.cs
- TypeToken.cs
- ValidationResult.cs
- ITreeGenerator.cs
- RegexWriter.cs
- TextDecorations.cs
- SerializableAttribute.cs
- CodeThrowExceptionStatement.cs
- SystemGatewayIPAddressInformation.cs
- ChannelServices.cs
- WebBrowserBase.cs
- ModifierKeysValueSerializer.cs
- EastAsianLunisolarCalendar.cs
- SaveLedgerEntryRequest.cs
- CodeAssignStatement.cs
- DataQuery.cs
- Matrix3D.cs
- NavigatorOutput.cs
- SerializationFieldInfo.cs
- WindowsSpinner.cs
- DataObject.cs
- LateBoundChannelParameterCollection.cs
- LogicalCallContext.cs
- Baml2006SchemaContext.cs