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
- FormsAuthenticationEventArgs.cs
- EventManager.cs
- CubicEase.cs
- SiteMapNodeItem.cs
- SecurityContext.cs
- InputReportEventArgs.cs
- BitmapEffectCollection.cs
- PropertyInformation.cs
- ValueConversionAttribute.cs
- TreeNodeCollectionEditor.cs
- assertwrapper.cs
- TextFormatterImp.cs
- KeyValueConfigurationCollection.cs
- URLString.cs
- ExeContext.cs
- KnownBoxes.cs
- WindowsBrush.cs
- CursorConverter.cs
- DataBoundLiteralControl.cs
- FontEmbeddingManager.cs
- TaskResultSetter.cs
- SubpageParagraph.cs
- MessageQueueAccessControlEntry.cs
- WebRequestModulesSection.cs
- TableRowCollection.cs
- ScriptMethodAttribute.cs
- OpenTypeLayout.cs
- CompilationUnit.cs
- PriorityBindingExpression.cs
- ParameterCollection.cs
- LineGeometry.cs
- SecurityAccessDeniedException.cs
- PermissionToken.cs
- RoutingTable.cs
- WorkerRequest.cs
- WebService.cs
- OleAutBinder.cs
- ResourceDictionary.cs
- MarkupCompiler.cs
- GorillaCodec.cs
- PersonalizationStateInfo.cs
- TableCellAutomationPeer.cs
- InstanceNotFoundException.cs
- BitmapEditor.cs
- CodeNamespaceImportCollection.cs
- Win32NamedPipes.cs
- DataGridViewColumnTypePicker.cs
- XmlILConstructAnalyzer.cs
- DistributedTransactionPermission.cs
- DateTimeParse.cs
- RotateTransform.cs
- TreeNodeCollection.cs
- StylusPointPropertyId.cs
- PrintEvent.cs
- WebPartManager.cs
- VisualStyleElement.cs
- __Error.cs
- DataRowChangeEvent.cs
- WebPartPersonalization.cs
- CallbackWrapper.cs
- ImmutableCollection.cs
- CachedFontFace.cs
- CustomTypeDescriptor.cs
- ScrollEventArgs.cs
- DataGridViewColumnCollection.cs
- TableCell.cs
- KeySpline.cs
- DialogResultConverter.cs
- FormViewPageEventArgs.cs
- OdbcFactory.cs
- GridViewCellAutomationPeer.cs
- StopStoryboard.cs
- MultipartIdentifier.cs
- ContextMenu.cs
- PropertyEmitter.cs
- IndentTextWriter.cs
- XPathArrayIterator.cs
- ClientData.cs
- PeerDuplexChannelListener.cs
- EditorZoneBase.cs
- JsonEncodingStreamWrapper.cs
- EtwTrace.cs
- UserNameSecurityToken.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- storagemappingitemcollection.viewdictionary.cs
- EntityConnection.cs
- XmlSerializerFactory.cs
- BrowserCapabilitiesFactory.cs
- ValidationErrorEventArgs.cs
- PolicyAssertionCollection.cs
- ThreadNeutralSemaphore.cs
- BezierSegment.cs
- HtmlInputHidden.cs
- Compiler.cs
- VectorConverter.cs
- PropertyTabChangedEvent.cs
- SqlRowUpdatingEvent.cs
- PeerNeighborManager.cs
- DoubleAnimation.cs
- StrokeNodeOperations2.cs