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
- PerformanceCounters.cs
- TranslateTransform3D.cs
- ConnectionPoolManager.cs
- PathGeometry.cs
- InvalidOleVariantTypeException.cs
- TableLayoutPanelCellPosition.cs
- Command.cs
- DataObject.cs
- AtlasWeb.Designer.cs
- MobileDeviceCapabilitiesSectionHandler.cs
- AutoResetEvent.cs
- BitmapCacheBrush.cs
- CheckBoxField.cs
- altserialization.cs
- Int32Rect.cs
- ProfileGroupSettings.cs
- TemplateApplicationHelper.cs
- AutomationFocusChangedEventArgs.cs
- TableDesigner.cs
- AxDesigner.cs
- RenderDataDrawingContext.cs
- ReachUIElementCollectionSerializer.cs
- DataRow.cs
- RandomNumberGenerator.cs
- TdsParser.cs
- EntityContainerRelationshipSetEnd.cs
- HttpValueCollection.cs
- RegexRunner.cs
- CodeTypeDeclaration.cs
- HttpVersion.cs
- DCSafeHandle.cs
- SqlTriggerContext.cs
- InputEventArgs.cs
- Encoder.cs
- DataRowChangeEvent.cs
- ProfilePropertySettings.cs
- SystemTcpStatistics.cs
- TypeResolvingOptionsAttribute.cs
- QueryPageSettingsEventArgs.cs
- TargetPerspective.cs
- FastPropertyAccessor.cs
- DataGridCellItemAutomationPeer.cs
- Directory.cs
- OperationFormatter.cs
- HttpCapabilitiesSectionHandler.cs
- DataGridTextBoxColumn.cs
- FlowDocumentView.cs
- SQLRoleProvider.cs
- MembershipSection.cs
- ScrollBar.cs
- FixedSOMPage.cs
- InvalidPrinterException.cs
- FileStream.cs
- SQLResource.cs
- ScriptingScriptResourceHandlerSection.cs
- LateBoundBitmapDecoder.cs
- Config.cs
- ExpressionConverter.cs
- CodeNamespaceCollection.cs
- NotificationContext.cs
- SHA256.cs
- PersianCalendar.cs
- WSFederationHttpBinding.cs
- PersistenceContextEnlistment.cs
- ColorConverter.cs
- CollectionExtensions.cs
- TreeView.cs
- WindowsScrollBar.cs
- AdCreatedEventArgs.cs
- VariableQuery.cs
- BamlResourceSerializer.cs
- CompressEmulationStream.cs
- PolyQuadraticBezierSegment.cs
- MediaPlayer.cs
- BindingSourceDesigner.cs
- ManipulationInertiaStartingEventArgs.cs
- ReversePositionQuery.cs
- FactoryGenerator.cs
- ApplicationInterop.cs
- XmlTypeMapping.cs
- BitmapPalettes.cs
- RenderCapability.cs
- SchemaImporter.cs
- BaseValidator.cs
- AccessText.cs
- AutomationPatternInfo.cs
- TransactionFlowProperty.cs
- URL.cs
- TextFormatterContext.cs
- Vector3DAnimation.cs
- EmptyElement.cs
- XmlArrayAttribute.cs
- AsnEncodedData.cs
- smtppermission.cs
- ToolTipAutomationPeer.cs
- BrowserCapabilitiesCompiler.cs
- LoginName.cs
- TextWriter.cs
- contentDescriptor.cs
- xmlfixedPageInfo.cs