Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / MsmqIntegration / MsmqIntegrationBindingElement.cs / 1 / MsmqIntegrationBindingElement.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.MsmqIntegration { using System.Net.Security; using System.Runtime.Serialization; using System.ServiceModel.Channels; using System.Collections.Generic; public sealed class MsmqIntegrationBindingElement : MsmqBindingElementBase { MsmqMessageSerializationFormat serializationFormat; Type[] targetSerializationTypes; public MsmqIntegrationBindingElement() { this.serializationFormat = MsmqIntegrationDefaults.SerializationFormat; } MsmqIntegrationBindingElement(MsmqIntegrationBindingElement other) : base(other) { this.serializationFormat = other.serializationFormat; if (other.targetSerializationTypes != null) { this.targetSerializationTypes = other.targetSerializationTypes.Clone() as Type[]; } } public override string Scheme { get { return "msmq.formatname"; } } internal override MsmqUri.IAddressTranslator AddressTranslator { get { return MsmqUri.FormatNameAddressTranslator; } } // applicable on: client, server public MsmqMessageSerializationFormat SerializationFormat { get { return this.serializationFormat; } set { if (!MsmqMessageSerializationFormatHelper.IsDefined(value)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentOutOfRangeException("value")); } this.serializationFormat = value; } } // applicable on: receiver public Type[] TargetSerializationTypes { get { if (null == this.targetSerializationTypes) return null; else return this.targetSerializationTypes.Clone() as Type[]; } set { if (null == value) this.targetSerializationTypes = null; else this.targetSerializationTypes = value.Clone() as Type[]; } } public override BindingElement Clone() { return new MsmqIntegrationBindingElement(this); } public override bool CanBuildChannelFactory(BindingContext context) { return typeof(TChannel) == typeof(IOutputChannel); } public override bool CanBuildChannelListener (BindingContext context) { return typeof(TChannel) == typeof(IInputChannel); } public override IChannelFactory BuildChannelFactory (BindingContext context) { if (context == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context"); } if (typeof(TChannel) != typeof(IOutputChannel)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("TChannel", SR.GetString(SR.ChannelTypeNotSupported, typeof(TChannel))); } MsmqChannelFactoryBase factory = new MsmqIntegrationChannelFactory(this, context); MsmqVerifier.VerifySender (factory); return (IChannelFactory )(object)factory; } public override IChannelListener BuildChannelListener (BindingContext context) { if (context == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context"); } if (typeof(TChannel) != typeof(IInputChannel)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument("TChannel", SR.GetString(SR.ChannelTypeNotSupported, typeof(TChannel))); } MsmqIntegrationReceiveParameters receiveParameters = new MsmqIntegrationReceiveParameters(this); MsmqIntegrationChannelListener listener = new MsmqIntegrationChannelListener(this, context, receiveParameters); MsmqVerifier.VerifyReceiver(receiveParameters, listener.Uri); return (IChannelListener )(object)listener; } public override T GetProperty (BindingContext context) { if (context == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context"); } if (typeof(T) == typeof(MessageVersion)) { return (T)(object)(MessageVersion.None); } else { return base.GetProperty (context); } } } } // 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
- PenLineCapValidation.cs
- SerializationObjectManager.cs
- PageCache.cs
- CustomError.cs
- WebPartDisplayModeCancelEventArgs.cs
- Encoding.cs
- InlinedAggregationOperatorEnumerator.cs
- WebContext.cs
- ConsoleTraceListener.cs
- SelectedDatesCollection.cs
- ObjectListShowCommandsEventArgs.cs
- KeyValueConfigurationElement.cs
- TemplatePropertyEntry.cs
- ReadOnlyHierarchicalDataSourceView.cs
- DLinqColumnProvider.cs
- NativeRecognizer.cs
- LinearKeyFrames.cs
- TransformerInfo.cs
- PersonalizationProviderHelper.cs
- DirectoryRootQuery.cs
- EpmAttributeNameBuilder.cs
- Debug.cs
- StateWorkerRequest.cs
- CacheEntry.cs
- NotificationContext.cs
- ContainerParaClient.cs
- ResetableIterator.cs
- ByteKeyFrameCollection.cs
- SizeF.cs
- Rect.cs
- _OverlappedAsyncResult.cs
- RunInstallerAttribute.cs
- Adorner.cs
- WebCategoryAttribute.cs
- BeginGetFileNameFromUserRequest.cs
- SiteMapDataSourceView.cs
- DataRecordInternal.cs
- RawStylusSystemGestureInputReport.cs
- FixedPageAutomationPeer.cs
- LeaseManager.cs
- UnmanagedMarshal.cs
- OdbcConnectionPoolProviderInfo.cs
- GlyphRunDrawing.cs
- PriorityItem.cs
- HighlightComponent.cs
- Common.cs
- EntityFunctions.cs
- DataGridViewCellValidatingEventArgs.cs
- SatelliteContractVersionAttribute.cs
- PropertyEmitter.cs
- BaseTemplateCodeDomTreeGenerator.cs
- QualifiedCellIdBoolean.cs
- _ListenerResponseStream.cs
- future.cs
- HostingEnvironmentSection.cs
- DescendantQuery.cs
- ApplicationSecurityManager.cs
- SecurityTokenTypes.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- AnimationClockResource.cs
- CommandID.cs
- SoapReflectionImporter.cs
- AspCompat.cs
- Point3D.cs
- SqlGenerator.cs
- ModelItemCollection.cs
- PartialArray.cs
- ValidationPropertyAttribute.cs
- FilterableAttribute.cs
- ModuleBuilderData.cs
- TypeUnloadedException.cs
- HostnameComparisonMode.cs
- WebPartDescription.cs
- Help.cs
- DoubleAnimation.cs
- TimerElapsedEvenArgs.cs
- ControlBuilder.cs
- MultiTouchSystemGestureLogic.cs
- EventLogException.cs
- XmlSchemaType.cs
- TdsParameterSetter.cs
- XmlExtensionFunction.cs
- InheritanceAttribute.cs
- UriSection.cs
- FormViewDeleteEventArgs.cs
- RectangleHotSpot.cs
- DesignerDataTableBase.cs
- OpenFileDialog.cs
- RowsCopiedEventArgs.cs
- RuleInfoComparer.cs
- Helpers.cs
- InkCanvasInnerCanvas.cs
- FontUnit.cs
- RemoteEndpointMessageProperty.cs
- XNodeValidator.cs
- FamilyMap.cs
- DBPropSet.cs
- X509Certificate2.cs
- ButtonAutomationPeer.cs
- HttpRuntimeSection.cs