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
- ExpressionNormalizer.cs
- LinkLabel.cs
- PropertyItem.cs
- HotCommands.cs
- KeyboardNavigation.cs
- DesignerInterfaces.cs
- StylusPoint.cs
- StylusCollection.cs
- DateRangeEvent.cs
- GlyphingCache.cs
- DataTemplateSelector.cs
- DataGridCellInfo.cs
- SqlProviderManifest.cs
- Matrix3DConverter.cs
- MemberPath.cs
- ContainerAction.cs
- NodeInfo.cs
- Pointer.cs
- UIElementAutomationPeer.cs
- ProtocolsConfigurationHandler.cs
- ValuePatternIdentifiers.cs
- Menu.cs
- ActiveXSite.cs
- OleDbParameter.cs
- WindowsContainer.cs
- RequestReplyCorrelator.cs
- EventLogException.cs
- XmlSchemaAll.cs
- SymbolTable.cs
- SvcMapFileSerializer.cs
- ReliabilityContractAttribute.cs
- OdbcPermission.cs
- CompensationDesigner.cs
- DataObjectSettingDataEventArgs.cs
- IChannel.cs
- TypeLoader.cs
- UrlPropertyAttribute.cs
- basevalidator.cs
- QueryCacheEntry.cs
- DrawListViewColumnHeaderEventArgs.cs
- activationcontext.cs
- _ListenerRequestStream.cs
- MenuCommand.cs
- TrackingCondition.cs
- ParentQuery.cs
- EnvironmentPermission.cs
- typedescriptorpermission.cs
- ComNativeDescriptor.cs
- ByteConverter.cs
- BitmapImage.cs
- HijriCalendar.cs
- ConstraintEnumerator.cs
- SpeechEvent.cs
- EmptyControlCollection.cs
- PagesSection.cs
- HasCopySemanticsAttribute.cs
- ResourceWriter.cs
- TemplateBindingExpression.cs
- DesignerMetadata.cs
- Geometry3D.cs
- DataGridViewRowCancelEventArgs.cs
- Underline.cs
- WebServiceTypeData.cs
- SessionViewState.cs
- HtmlInputRadioButton.cs
- JoinGraph.cs
- SqlUserDefinedTypeAttribute.cs
- BuilderElements.cs
- PageWrapper.cs
- XmlAttributes.cs
- InputProcessorProfilesLoader.cs
- LineGeometry.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- CommandBindingCollection.cs
- ObjectToken.cs
- WebPartActionVerb.cs
- PlatformCulture.cs
- NavigatingCancelEventArgs.cs
- EventSinkActivity.cs
- ColorContextHelper.cs
- PaginationProgressEventArgs.cs
- SourceChangedEventArgs.cs
- RequiredArgumentAttribute.cs
- SupportsEventValidationAttribute.cs
- DataView.cs
- OutKeywords.cs
- ToolboxItem.cs
- SBCSCodePageEncoding.cs
- Icon.cs
- PropertyConverter.cs
- SystemUdpStatistics.cs
- DataControlFieldHeaderCell.cs
- ArgumentException.cs
- LinqDataSourceUpdateEventArgs.cs
- DetailsViewDeleteEventArgs.cs
- WindowVisualStateTracker.cs
- CodeDOMProvider.cs
- CroppedBitmap.cs
- MouseBinding.cs
- ConfigurationValidatorAttribute.cs