Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Dispatcher / PeerValidationBehavior.cs / 1 / PeerValidationBehavior.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Dispatcher { using System.ServiceModel.Channels; using System.ServiceModel; using System.ServiceModel.Description; using System.Collections.ObjectModel; using System.Collections.Generic; class PeerValidationBehavior : IEndpointBehavior, IServiceBehavior { public static PeerValidationBehavior Instance { get { if (instance == null) instance = new PeerValidationBehavior(); return instance; } } static PeerValidationBehavior instance; PeerValidationBehavior() {} static bool IsRequestReplyContract(ContractDescription contract) { bool requestReply = false; foreach (OperationDescription operation in contract.Operations) { if (operation.Messages.Count > 1) // Request-reply { requestReply = true; break; } } return requestReply; } void IEndpointBehavior.Validate(ServiceEndpoint serviceEndpoint) { if (serviceEndpoint == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("serviceEndpoint"); ContractDescription contract = serviceEndpoint.Contract; Binding binding = serviceEndpoint.Binding; ValidateHelper(contract, binding); } void IEndpointBehavior.AddBindingParameters(ServiceEndpoint serviceEndpoint, BindingParameterCollection bindingParameters) { } void IEndpointBehavior.ApplyDispatchBehavior(ServiceEndpoint serviceEndpoint, EndpointDispatcher endpointDispatcher) { } void IEndpointBehavior.ApplyClientBehavior(ServiceEndpoint serviceEndpoint, ClientRuntime behavior) { } void IServiceBehavior.AddBindingParameters(ServiceDescription description, ServiceHostBase serviceHostBase, Collectionendpoints, BindingParameterCollection parameters) { } void IServiceBehavior.ApplyDispatchBehavior(ServiceDescription description, ServiceHostBase serviceHostBase) { } void IServiceBehavior.Validate(ServiceDescription description, ServiceHostBase serviceHostBase) { if (description == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("description"); for (int i = 0; i < description.Endpoints.Count; i++) { ServiceEndpoint endpoint = description.Endpoints[i]; ValidateHelper(endpoint.Contract, endpoint.Binding); } } // SM doesn't support request-reply message pattern over multi-point channels correctly, so, disabling // request-reply for NetPeerTcpBinding. (Advanced users may find a way to implement request-reply over // a CustomBinding that includes PeerTransportBE.) void ValidateHelper(ContractDescription contract, Binding binding) { if (binding is NetPeerTcpBinding && IsRequestReplyContract(contract)) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException( SR.GetString(SR.BindingDoesnTSupportRequestReplyButContract1, binding.Name))); } } } } // 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
- SchemaImporter.cs
- TreeNodeStyleCollection.cs
- ExternalFile.cs
- DefaultExpressionVisitor.cs
- CounterSampleCalculator.cs
- SHA512.cs
- GridSplitterAutomationPeer.cs
- FontFaceLayoutInfo.cs
- ProxyWebPart.cs
- SecurityIdentifierConverter.cs
- ByteStack.cs
- SecurityManager.cs
- ChildTable.cs
- ClickablePoint.cs
- MessageQueueEnumerator.cs
- IndentedWriter.cs
- IdnMapping.cs
- SqlSupersetValidator.cs
- TraceContextEventArgs.cs
- ServerIdentity.cs
- ExtentJoinTreeNode.cs
- ViewLoader.cs
- WebUtility.cs
- EntityCommand.cs
- PolicyManager.cs
- CfgRule.cs
- DoubleAnimationBase.cs
- CollectionChange.cs
- OdbcConnectionString.cs
- ConfigurationValidatorAttribute.cs
- TableCellAutomationPeer.cs
- CapabilitiesPattern.cs
- NullRuntimeConfig.cs
- SafeNativeMethods.cs
- MaterialGroup.cs
- Collection.cs
- FrameworkContextData.cs
- NodeLabelEditEvent.cs
- __Filters.cs
- SQLGuidStorage.cs
- Base64Encoder.cs
- FontDriver.cs
- XmlCharType.cs
- WebPartConnectionsCloseVerb.cs
- loginstatus.cs
- StyleCollection.cs
- ConfigurationManagerHelper.cs
- _FtpDataStream.cs
- RepeaterItem.cs
- NumberSubstitution.cs
- AnimatedTypeHelpers.cs
- HwndKeyboardInputProvider.cs
- BamlBinaryWriter.cs
- ContentControl.cs
- SafeCryptHandles.cs
- DPAPIProtectedConfigurationProvider.cs
- relpropertyhelper.cs
- QuotedPrintableStream.cs
- HttpResponseBase.cs
- BindToObject.cs
- TdsParser.cs
- PasswordRecovery.cs
- mongolianshape.cs
- DefaultParameterValueAttribute.cs
- View.cs
- ProfileBuildProvider.cs
- WebBrowserDocumentCompletedEventHandler.cs
- StringWriter.cs
- Encoder.cs
- InkCanvasFeedbackAdorner.cs
- BitmapEffectState.cs
- PersonalizationProviderCollection.cs
- HttpServerProtocol.cs
- PageContentCollection.cs
- loginstatus.cs
- OracleDataAdapter.cs
- SystemUnicastIPAddressInformation.cs
- DataIdProcessor.cs
- TableLayoutPanel.cs
- ProfileServiceManager.cs
- TypeDescriptorFilterService.cs
- TableDesigner.cs
- ColumnWidthChangedEvent.cs
- SimpleWorkerRequest.cs
- ExpressionBuilderContext.cs
- ComPlusInstanceContextInitializer.cs
- SoapFault.cs
- AnimationStorage.cs
- XamlVector3DCollectionSerializer.cs
- BooleanKeyFrameCollection.cs
- EventSourceCreationData.cs
- SmiRecordBuffer.cs
- CqlBlock.cs
- ToolStripDropTargetManager.cs
- TableTextElementCollectionInternal.cs
- ApplicationInfo.cs
- OdbcErrorCollection.cs
- ScrollData.cs
- TemplateBindingExpression.cs
- StorageModelBuildProvider.cs