Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / NetFx35 / System.ServiceModel.Web / System / ServiceModel / Dispatcher / ContentTypeSettingClientMessageFormatter.cs / 1 / ContentTypeSettingClientMessageFormatter.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Dispatcher { using System.Collections; using System.ServiceModel.Channels; using System.ServiceModel; using System.ServiceModel.Description; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Reflection; using System.Xml; using System.ServiceModel.Diagnostics; using System.Net; using System.ServiceModel.Dispatcher; using System.ServiceModel.Web; class ContentTypeSettingClientMessageFormatter : IClientMessageFormatter { IClientMessageFormatter innerFormatter; string outgoingContentType; public ContentTypeSettingClientMessageFormatter(string outgoingContentType, IClientMessageFormatter innerFormatter) { if (outgoingContentType == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("outgoingContentType"); } if (innerFormatter == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("innerFormatter"); } this.outgoingContentType = outgoingContentType; this.innerFormatter = innerFormatter; } public object DeserializeReply(Message message, object[] parameters) { return this.innerFormatter.DeserializeReply(message, parameters); } public Message SerializeRequest(MessageVersion messageVersion, object[] parameters) { Message message = this.innerFormatter.SerializeRequest(messageVersion, parameters); if (message != null) { AddRequestContentTypeProperty(message, this.outgoingContentType); } return message; } static void AddRequestContentTypeProperty(Message message, string contentType) { if (message == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("message"); } if (contentType == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("contentType"); } if (OperationContext.Current != null && OperationContext.Current.HasOutgoingMessageProperties) { if (string.IsNullOrEmpty(WebOperationContext.Current.OutgoingRequest.ContentType)) { WebOperationContext.Current.OutgoingRequest.ContentType = contentType; } } else { object prop; message.Properties.TryGetValue(HttpRequestMessageProperty.Name, out prop); HttpRequestMessageProperty httpProperty; if (prop != null) { httpProperty = (HttpRequestMessageProperty) prop; } else { httpProperty = new HttpRequestMessageProperty(); message.Properties.Add(HttpRequestMessageProperty.Name, httpProperty); } if (string.IsNullOrEmpty(httpProperty.Headers[HttpRequestHeader.ContentType])) { httpProperty.Headers[HttpRequestHeader.ContentType] = contentType; } } } } } // 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
- PageAsyncTask.cs
- VisualStyleRenderer.cs
- FacetDescription.cs
- AllMembershipCondition.cs
- UTF32Encoding.cs
- WebPartConnectionsConfigureVerb.cs
- JumpPath.cs
- Menu.cs
- EnlistmentState.cs
- RegexRunnerFactory.cs
- ReflectPropertyDescriptor.cs
- WebPartConnectionsDisconnectVerb.cs
- ScrollViewerAutomationPeer.cs
- followingquery.cs
- DocumentXmlWriter.cs
- TcpActivation.cs
- RuntimeArgumentHandle.cs
- DES.cs
- SettingsBase.cs
- XmlNodeList.cs
- SqlDataSourceSelectingEventArgs.cs
- MailWriter.cs
- XomlCompilerHelpers.cs
- XmlComment.cs
- XamlTemplateSerializer.cs
- DesignOnlyAttribute.cs
- ArraySortHelper.cs
- SignerInfo.cs
- FastPropertyAccessor.cs
- ContractsBCL.cs
- DbCommandTree.cs
- ListViewInsertionMark.cs
- CommentEmitter.cs
- SystemSounds.cs
- PeerNameRegistration.cs
- ProvidersHelper.cs
- CommandManager.cs
- Cursor.cs
- RelationshipNavigation.cs
- UrlPropertyAttribute.cs
- SiteMapDataSource.cs
- validation.cs
- WindowsListViewItem.cs
- DataGridViewDataErrorEventArgs.cs
- NonSerializedAttribute.cs
- CompoundFileReference.cs
- BinHexEncoder.cs
- Selector.cs
- RequestTimeoutManager.cs
- FamilyCollection.cs
- RowsCopiedEventArgs.cs
- SqlParameterCollection.cs
- EmptyEnumerable.cs
- UserControlParser.cs
- PrimaryKeyTypeConverter.cs
- Misc.cs
- AsynchronousChannel.cs
- COAUTHIDENTITY.cs
- XamlToRtfWriter.cs
- ExitEventArgs.cs
- ImageField.cs
- XmlValueConverter.cs
- Track.cs
- Descriptor.cs
- DbParameterCollectionHelper.cs
- Translator.cs
- DependencyPropertyDescriptor.cs
- DataPagerFieldItem.cs
- DisposableCollectionWrapper.cs
- UseAttributeSetsAction.cs
- MemoryStream.cs
- StylusPointCollection.cs
- EdmScalarPropertyAttribute.cs
- SpeakInfo.cs
- WindowsListViewItem.cs
- HttpFileCollection.cs
- HttpConfigurationContext.cs
- TemplateControl.cs
- RuleSet.cs
- MultipartIdentifier.cs
- ProxyFragment.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- ProtocolsConfigurationHandler.cs
- PageAsyncTaskManager.cs
- EllipticalNodeOperations.cs
- ZipPackage.cs
- DiagnosticsElement.cs
- ScriptManagerProxy.cs
- SessionSwitchEventArgs.cs
- ApplicationServicesHostFactory.cs
- FunctionDescription.cs
- SqlAliaser.cs
- ButtonAutomationPeer.cs
- OdbcException.cs
- PageCatalogPart.cs
- HostProtectionException.cs
- WebContentFormatHelper.cs
- DrawTreeNodeEventArgs.cs
- WebPartAuthorizationEventArgs.cs
- PaginationProgressEventArgs.cs