Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / NetFx35 / System.ServiceModel.Web / System / ServiceModel / Dispatcher / ContentTypeSettingDispatchMessageFormatter.cs / 1 / ContentTypeSettingDispatchMessageFormatter.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.Web; class ContentTypeSettingDispatchMessageFormatter : IDispatchMessageFormatter { IDispatchMessageFormatter innerFormatter; string outgoingContentType; public ContentTypeSettingDispatchMessageFormatter(string outgoingContentType, IDispatchMessageFormatter innerFormatter) { if (outgoingContentType == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("outgoingContentType"); } if (innerFormatter == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("innerFormatter"); } this.outgoingContentType = outgoingContentType; this.innerFormatter = innerFormatter; } public void DeserializeRequest(Message message, object[] parameters) { this.innerFormatter.DeserializeRequest(message, parameters); } public Message SerializeReply(MessageVersion messageVersion, object[] parameters, object result) { Message message = this.innerFormatter.SerializeReply(messageVersion, parameters, result); if (message != null) { AddResponseContentTypeProperty(message, this.outgoingContentType); } return message; } static void AddResponseContentTypeProperty(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.OutgoingResponse.ContentType)) { WebOperationContext.Current.OutgoingResponse.ContentType = contentType; } } else { object prop; message.Properties.TryGetValue(HttpResponseMessageProperty.Name, out prop); HttpResponseMessageProperty httpProperty; if (prop != null) { httpProperty = (HttpResponseMessageProperty) prop; } else { httpProperty = new HttpResponseMessageProperty(); message.Properties.Add(HttpResponseMessageProperty.Name, httpProperty); } if (string.IsNullOrEmpty(httpProperty.Headers[HttpResponseHeader.ContentType])) { httpProperty.Headers[HttpResponseHeader.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
- SystemFonts.cs
- DecoderExceptionFallback.cs
- PerformanceCounterLib.cs
- FrugalList.cs
- CommandManager.cs
- SizeConverter.cs
- DirectoryNotFoundException.cs
- TreeNode.cs
- GeneralTransform2DTo3D.cs
- ReadOnlyHierarchicalDataSource.cs
- AttributeProviderAttribute.cs
- WebBaseEventKeyComparer.cs
- HtmlTableRowCollection.cs
- ContainerSelectorBehavior.cs
- DodSequenceMerge.cs
- ConnectionManager.cs
- InnerItemCollectionView.cs
- XmlSchemaSimpleContent.cs
- Int32KeyFrameCollection.cs
- EndSelectCardRequest.cs
- ClientViaElement.cs
- CqlParser.cs
- ProxyAttribute.cs
- HexParser.cs
- EndpointInstanceProvider.cs
- CallbackHandler.cs
- ValueQuery.cs
- ExpressionTable.cs
- oledbconnectionstring.cs
- UnSafeCharBuffer.cs
- dbenumerator.cs
- RemoteWebConfigurationHostStream.cs
- Transform3D.cs
- EventLogPropertySelector.cs
- SchemaType.cs
- RectAnimationBase.cs
- VoiceChangeEventArgs.cs
- CurrentTimeZone.cs
- XmlException.cs
- ResourceReferenceExpression.cs
- METAHEADER.cs
- DesignerRegionCollection.cs
- ThemeConfigurationDialog.cs
- Point3DValueSerializer.cs
- MemberMemberBinding.cs
- OperationInfoBase.cs
- Identity.cs
- PrimitiveCodeDomSerializer.cs
- ClientConfigurationHost.cs
- ClaimSet.cs
- DesignObjectWrapper.cs
- KeyProperty.cs
- ContextMenuService.cs
- GenericUriParser.cs
- CheckedPointers.cs
- ForceCopyBuildProvider.cs
- Line.cs
- DbConnectionStringBuilder.cs
- GridViewItemAutomationPeer.cs
- BindingContext.cs
- DataGridViewButtonCell.cs
- DispatcherHookEventArgs.cs
- SQLConvert.cs
- BitmapPalette.cs
- Task.cs
- TypeDependencyAttribute.cs
- ComponentEvent.cs
- PathSegmentCollection.cs
- DataGridColumnStyleMappingNameEditor.cs
- DesignerHierarchicalDataSourceView.cs
- ImagingCache.cs
- SelectionRange.cs
- WebPartZoneCollection.cs
- ProgressiveCrcCalculatingStream.cs
- MDIControlStrip.cs
- AstTree.cs
- PlaceHolder.cs
- RectValueSerializer.cs
- TagMapInfo.cs
- XmlProcessingInstruction.cs
- DBConnectionString.cs
- SimpleBitVector32.cs
- ErrorFormatterPage.cs
- DbProviderConfigurationHandler.cs
- VectorAnimationBase.cs
- MouseActionValueSerializer.cs
- EncoderReplacementFallback.cs
- ToolboxItemFilterAttribute.cs
- XmlBindingWorker.cs
- DataGridColumn.cs
- X509Certificate2.cs
- EventPrivateKey.cs
- InvalidOleVariantTypeException.cs
- XPathNode.cs
- LockRecursionException.cs
- CancellationHandler.cs
- HttpException.cs
- CustomErrorsSectionWrapper.cs
- DataTemplateKey.cs
- SortedList.cs