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
- mactripleDES.cs
- CodeValidator.cs
- SchemaImporterExtensionElementCollection.cs
- HitTestDrawingContextWalker.cs
- newinstructionaction.cs
- ArrangedElementCollection.cs
- ResourceManager.cs
- TimeSpanSecondsConverter.cs
- MatrixAnimationUsingKeyFrames.cs
- DuplicateWaitObjectException.cs
- Peer.cs
- ContravarianceAdapter.cs
- XmlSchemaDatatype.cs
- controlskin.cs
- NullRuntimeConfig.cs
- AnnotationResource.cs
- ExpandedProjectionNode.cs
- ToolStripManager.cs
- WorkflowDesignerColors.cs
- BindingListCollectionView.cs
- HwndSourceKeyboardInputSite.cs
- ClientConfigurationSystem.cs
- Function.cs
- MenuAdapter.cs
- XmlnsDefinitionAttribute.cs
- ClosureBinding.cs
- DataGridViewCellValueEventArgs.cs
- BuilderElements.cs
- ChangeConflicts.cs
- FileDialogPermission.cs
- RecognizedPhrase.cs
- XmlSecureResolver.cs
- Dispatcher.cs
- Dictionary.cs
- URIFormatException.cs
- FunctionCommandText.cs
- GPPOINT.cs
- Win32Native.cs
- TileModeValidation.cs
- UserControl.cs
- GroupBox.cs
- ProbeMatchesApril2005.cs
- DataGridViewIntLinkedList.cs
- WebChannelFactory.cs
- KeyboardNavigation.cs
- BindingElementCollection.cs
- SourceSwitch.cs
- ActivityExecutorOperation.cs
- EntityDataSourceContainerNameItem.cs
- uribuilder.cs
- cookieexception.cs
- ScalarRestriction.cs
- Rules.cs
- CodeChecksumPragma.cs
- TextTreeUndo.cs
- HttpCookie.cs
- OciLobLocator.cs
- COAUTHIDENTITY.cs
- ZipIOLocalFileHeader.cs
- XPathEmptyIterator.cs
- DataGridViewIntLinkedList.cs
- LambdaCompiler.Expressions.cs
- PropertyGridView.cs
- DbConnectionPool.cs
- FacetValues.cs
- TreeWalker.cs
- Int32AnimationUsingKeyFrames.cs
- SqlDuplicator.cs
- TextEmbeddedObject.cs
- DeviceSpecificDesigner.cs
- EntityAdapter.cs
- QueryCursorEventArgs.cs
- EncodingTable.cs
- SerializableTypeCodeDomSerializer.cs
- XmlNodeChangedEventManager.cs
- ConfigurationConverterBase.cs
- XslNumber.cs
- DescendantOverDescendantQuery.cs
- Types.cs
- ExpressionWriter.cs
- ProxySimple.cs
- SecurityDocument.cs
- WindowsImpersonationContext.cs
- FilterQueryOptionExpression.cs
- PackageStore.cs
- Vector3DCollectionConverter.cs
- SrgsElementFactory.cs
- basemetadatamappingvisitor.cs
- _CacheStreams.cs
- InputLanguageCollection.cs
- ImageAutomationPeer.cs
- DesignerSerializationManager.cs
- LayoutManager.cs
- GregorianCalendarHelper.cs
- GetBrowserTokenRequest.cs
- InvokeMethodActivityDesigner.cs
- RuntimeEnvironment.cs
- CharUnicodeInfo.cs
- ASCIIEncoding.cs
- LinearGradientBrush.cs