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
- PopOutPanel.cs
- InvalidFilterCriteriaException.cs
- MappingModelBuildProvider.cs
- TextViewSelectionProcessor.cs
- DocumentGrid.cs
- AnnotationService.cs
- TextServicesCompartmentEventSink.cs
- HttpApplicationFactory.cs
- ProvidePropertyAttribute.cs
- CacheEntry.cs
- IPAddressCollection.cs
- CancellationHandler.cs
- BookmarkOptionsHelper.cs
- NodeFunctions.cs
- MetadataItemCollectionFactory.cs
- Package.cs
- XmlSchemaValidationException.cs
- HttpListenerResponse.cs
- DataControlFieldHeaderCell.cs
- RepeaterItem.cs
- ArgumentReference.cs
- EmptyElement.cs
- DataGridViewEditingControlShowingEventArgs.cs
- FileSystemWatcher.cs
- ProfilePropertySettings.cs
- RadioButton.cs
- ServiceEndpointElementCollection.cs
- ClientBuildManagerCallback.cs
- EmptyQuery.cs
- UInt32.cs
- oledbconnectionstring.cs
- ControlCollection.cs
- DefaultDialogButtons.cs
- RegexWriter.cs
- ThemeDictionaryExtension.cs
- SapiInterop.cs
- WebBrowser.cs
- CodeGotoStatement.cs
- MatrixTransform3D.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- XsltCompileContext.cs
- MSAAEventDispatcher.cs
- Expr.cs
- CodeAttributeDeclarationCollection.cs
- ClockGroup.cs
- QueryCacheKey.cs
- ConfigurationManagerHelperFactory.cs
- SerializeAbsoluteContext.cs
- PerformanceCounterLib.cs
- ToolStripPanelSelectionBehavior.cs
- LineGeometry.cs
- FormattedTextSymbols.cs
- DiscoveryReferences.cs
- FormsIdentity.cs
- KnownTypesProvider.cs
- DataMemberConverter.cs
- AccessorTable.cs
- CustomCredentialPolicy.cs
- TypeContext.cs
- AdapterDictionary.cs
- Compress.cs
- TextBreakpoint.cs
- ListView.cs
- TextEditorSelection.cs
- InteropAutomationProvider.cs
- SortKey.cs
- DSACryptoServiceProvider.cs
- TransformerInfoCollection.cs
- Triangle.cs
- ConfigurationValidatorAttribute.cs
- ThemeDictionaryExtension.cs
- WebConfigurationFileMap.cs
- MultiSelectRootGridEntry.cs
- PaginationProgressEventArgs.cs
- UnsafeNativeMethods.cs
- DesignerSerializationOptionsAttribute.cs
- VirtualPathProvider.cs
- Color.cs
- SimpleType.cs
- MultipleViewProviderWrapper.cs
- EditableLabelControl.cs
- QilParameter.cs
- CachedRequestParams.cs
- PenThreadPool.cs
- EncryptedType.cs
- PreviewKeyDownEventArgs.cs
- HttpWebResponse.cs
- SqlClientFactory.cs
- ConfigurationElement.cs
- QueryCacheManager.cs
- ExpressionParser.cs
- XmlIlVisitor.cs
- MSG.cs
- RepeaterItem.cs
- WebConfigurationFileMap.cs
- DesignerDataSchemaClass.cs
- AuthenticationSchemesHelper.cs
- MemberListBinding.cs
- AliasGenerator.cs
- SmiEventStream.cs