Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx35 / System.ServiceModel.Web / System / ServiceModel / Dispatcher / MultiplexingFormatMapping.cs / 1305376 / MultiplexingFormatMapping.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Dispatcher { using System.Net.Mime; using System.ServiceModel.Channels; using System.ServiceModel.Web; using System.Text; abstract class MultiplexingFormatMapping { protected Encoding writeEncoding; protected string writeCharset; protected WebContentTypeMapper contentTypeMapper; abstract public WebMessageFormat MessageFormat { get; } abstract public WebContentFormat ContentFormat { get; } abstract public string DefaultMediaType { get; } abstract protected MessageEncoder Encoder { get; } ContentType defaultContentType; public ContentType DefaultContentType { get { if (defaultContentType == null) { defaultContentType = new ContentType(this.DefaultMediaType) { CharSet = this.writeCharset }; } return defaultContentType; } } public MultiplexingFormatMapping(Encoding writeEncoding, WebContentTypeMapper contentTypeMapper) { if (writeEncoding == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("writeEncoding"); } this.writeEncoding = writeEncoding; this.writeCharset = TextEncoderDefaults.EncodingToCharSet(writeEncoding); this.contentTypeMapper = contentTypeMapper; } public bool CanFormatResponse(ContentType acceptHeaderElement, bool matchCharset, out ContentType contentType) { if (acceptHeaderElement == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("acceptHeaderElement"); } // Scrub the content type so that it is only mediaType and the charset string charset = acceptHeaderElement.CharSet; contentType = new ContentType(acceptHeaderElement.MediaType); contentType.CharSet = this.DefaultContentType.CharSet; string contentTypeStr = contentType.ToString(); if (matchCharset && !string.IsNullOrEmpty(charset) && !string.Equals(charset, this.DefaultContentType.CharSet, StringComparison.OrdinalIgnoreCase)) { return false; } if (this.contentTypeMapper != null && this.contentTypeMapper.GetMessageFormatForContentType(contentType.MediaType) == this.ContentFormat) { return true; } if (this.Encoder.IsContentTypeSupported(contentTypeStr) && (charset == null || contentType.CharSet == this.DefaultContentType.CharSet)) { return true; } contentType = null; return false; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- COM2PictureConverter.cs
- UnknownWrapper.cs
- NativeMethodsCLR.cs
- EditorZoneDesigner.cs
- IndentedWriter.cs
- SharedStatics.cs
- VirtualizingStackPanel.cs
- ContentTextAutomationPeer.cs
- ProvidePropertyAttribute.cs
- TransactionContextManager.cs
- _NetworkingPerfCounters.cs
- COM2IDispatchConverter.cs
- TreeNodeMouseHoverEvent.cs
- MultiAsyncResult.cs
- Pair.cs
- QilUnary.cs
- MethodSignatureGenerator.cs
- Logging.cs
- UnsignedPublishLicense.cs
- BrushConverter.cs
- EntityModelSchemaGenerator.cs
- DiagnosticsConfiguration.cs
- LogRestartAreaEnumerator.cs
- PageTheme.cs
- PanelStyle.cs
- WindowsListViewGroupHelper.cs
- XmlILAnnotation.cs
- Misc.cs
- ImageMapEventArgs.cs
- WebPartCatalogAddVerb.cs
- XmlFormatExtensionPointAttribute.cs
- Executor.cs
- XmlCustomFormatter.cs
- TextChangedEventArgs.cs
- XamlPathDataSerializer.cs
- MessageHeaderDescription.cs
- TextHidden.cs
- WindowHideOrCloseTracker.cs
- GPRECTF.cs
- TimerEventSubscription.cs
- ListViewItem.cs
- TableParagraph.cs
- Scene3D.cs
- BamlTreeUpdater.cs
- WebServiceFaultDesigner.cs
- Authorization.cs
- WorkflowLayouts.cs
- DataGridToolTip.cs
- InputLanguageCollection.cs
- ConvertEvent.cs
- TripleDESCryptoServiceProvider.cs
- CategoryList.cs
- InternalBase.cs
- ConfigurationValues.cs
- XmlSchemaAttributeGroupRef.cs
- EventsTab.cs
- ClientSection.cs
- EncodingTable.cs
- webclient.cs
- WindowsScroll.cs
- OperatorExpressions.cs
- WmlTextViewAdapter.cs
- Rules.cs
- SocketElement.cs
- TypographyProperties.cs
- XamlNamespaceHelper.cs
- FileDialog.cs
- XmlSchema.cs
- SqlCachedBuffer.cs
- UnsafeNativeMethods.cs
- PersonalizationState.cs
- XsdDateTime.cs
- QueryableDataSourceEditData.cs
- DataGridColumnCollection.cs
- OSFeature.cs
- SerialPinChanges.cs
- COM2Properties.cs
- TextTreeFixupNode.cs
- ToolboxItemCollection.cs
- MatrixAnimationBase.cs
- RelationshipNavigation.cs
- InternalDuplexChannelListener.cs
- StateValidator.cs
- OperationInvokerBehavior.cs
- SectionXmlInfo.cs
- Cursor.cs
- CheckBoxPopupAdapter.cs
- SoapAttributes.cs
- Thread.cs
- InputMethod.cs
- SamlAuthorityBinding.cs
- CaseExpr.cs
- SharedUtils.cs
- FlowDocumentReader.cs
- smtpconnection.cs
- AppLevelCompilationSectionCache.cs
- DummyDataSource.cs
- ContentPresenter.cs
- MembershipValidatePasswordEventArgs.cs
- DeploymentSection.cs