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
- DataGridViewCheckBoxCell.cs
- DesignerCategoryAttribute.cs
- WindowsProgressbar.cs
- TreeNode.cs
- ToolStripPanelRenderEventArgs.cs
- AttributeEmitter.cs
- EventLogger.cs
- XmlSchemaSet.cs
- SettingsPropertyValueCollection.cs
- PropertyRef.cs
- TreeWalkHelper.cs
- DefaultBinder.cs
- QueuePropertyVariants.cs
- HttpResponseHeader.cs
- Condition.cs
- Win32PrintDialog.cs
- DataStorage.cs
- BufferedOutputStream.cs
- ReturnEventArgs.cs
- SamlSerializer.cs
- WebConfigurationHost.cs
- BitVec.cs
- ReachPageContentCollectionSerializer.cs
- MediaPlayer.cs
- _NetRes.cs
- CalendarDateRangeChangingEventArgs.cs
- TypeDescriptor.cs
- XmlQueryOutput.cs
- httpserverutility.cs
- SqlNodeAnnotation.cs
- CompositeKey.cs
- AsymmetricKeyExchangeDeformatter.cs
- XamlTypeMapperSchemaContext.cs
- IFlowDocumentViewer.cs
- UTF8Encoding.cs
- NativeCppClassAttribute.cs
- SecurityCriticalDataForSet.cs
- SQLUtility.cs
- MenuAdapter.cs
- WebSysDescriptionAttribute.cs
- MessageSecurityProtocol.cs
- DockPatternIdentifiers.cs
- ActiveXSite.cs
- TextEditorContextMenu.cs
- DbSourceCommand.cs
- SqlConnectionHelper.cs
- IndexedDataBuffer.cs
- InkPresenter.cs
- WpfPayload.cs
- DbProviderFactories.cs
- TdsEnums.cs
- SortFieldComparer.cs
- ImageListStreamer.cs
- DataTemplateKey.cs
- DataGridViewSelectedColumnCollection.cs
- Verify.cs
- Propagator.JoinPropagator.cs
- QueryLifecycle.cs
- EnumerableRowCollectionExtensions.cs
- PrincipalPermission.cs
- FileDialogCustomPlaces.cs
- EventLogTraceListener.cs
- Rect.cs
- MultiBindingExpression.cs
- IODescriptionAttribute.cs
- WindowAutomationPeer.cs
- ReversePositionQuery.cs
- FormsAuthenticationEventArgs.cs
- SecureEnvironment.cs
- ToolStripItemImageRenderEventArgs.cs
- EntityDataSourceEntitySetNameItem.cs
- WindowsNonControl.cs
- TextStore.cs
- JournalEntry.cs
- CommandValueSerializer.cs
- GenericArgumentsUpdater.cs
- DataGridViewTextBoxColumn.cs
- GridViewRow.cs
- HostExecutionContextManager.cs
- DatatypeImplementation.cs
- ContentFilePart.cs
- EntityDataSourceWizardForm.cs
- ACL.cs
- TextTreeNode.cs
- XmlSerializerImportOptions.cs
- CompositeScriptReferenceEventArgs.cs
- VirtualPathProvider.cs
- ZipPackagePart.cs
- ListItemParagraph.cs
- ApplicationId.cs
- SqlDataSourceQuery.cs
- WebReferenceCollection.cs
- LinqDataSourceDisposeEventArgs.cs
- SerializationObjectManager.cs
- HMACSHA1.cs
- XmlName.cs
- EntityTypeEmitter.cs
- SystemIPInterfaceStatistics.cs
- SQLConvert.cs
- SqlConnectionHelper.cs