Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Dispatcher / ActionMessageFilter.cs / 1 / ActionMessageFilter.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Dispatcher { using System; using System.ServiceModel.Channels; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; using System.Runtime.Serialization; [DataContract] public class ActionMessageFilter : MessageFilter { Dictionaryactions; ReadOnlyCollection actionSet; [DataMember(IsRequired = true)] internal string[] DCActions { get { string[] act = new string[this.actions.Count]; actions.Keys.CopyTo(act, 0); return act; } set { Init(value); } } public ActionMessageFilter(params string[] actions) { if(actions == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("actions"); } Init(actions); } void Init(string[] actions) { if(actions.Length == 0) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentException(SR.GetString(SR.ActionFilterEmptyList), "actions")); } this.actions = new Dictionary (); for(int i = 0; i < actions.Length; ++i) { // Duplicates are removed if(!this.actions.ContainsKey(actions[i])) { this.actions.Add(actions[i],0); } } } public ReadOnlyCollection Actions { get { if(this.actionSet == null) { this.actionSet = new ReadOnlyCollection (new List (this.actions.Keys)); } return this.actionSet; } } protected internal override IMessageFilterTable CreateFilterTable () { return new ActionMessageFilterTable (); } bool InnerMatch(Message message) { string act = message.Headers.Action; if(act == null) { act = string.Empty; } return this.actions.ContainsKey(act); } public override bool Match(Message message) { if(message == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("message"); } return InnerMatch(message); } public override bool Match(MessageBuffer messageBuffer) { if(messageBuffer == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("messageBuffer"); } Message msg = messageBuffer.CreateMessage(); try { return InnerMatch(msg); } finally { msg.Close(); } } } } // 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
- ElementNotAvailableException.cs
- RadioButtonBaseAdapter.cs
- SerTrace.cs
- RefreshEventArgs.cs
- PointCollectionValueSerializer.cs
- RC2CryptoServiceProvider.cs
- CodePageEncoding.cs
- SystemTcpConnection.cs
- DesignSurfaceServiceContainer.cs
- TrustManagerMoreInformation.cs
- OperationPickerDialog.cs
- XmlSchemaExternal.cs
- EntityDesignerDataSourceView.cs
- AuthorizationRuleCollection.cs
- ScriptControl.cs
- AssemblyNameProxy.cs
- ProviderConnectionPointCollection.cs
- URLMembershipCondition.cs
- GetPageNumberCompletedEventArgs.cs
- ImageSource.cs
- SQLGuidStorage.cs
- PrefixHandle.cs
- PrincipalPermission.cs
- DefinitionUpdate.cs
- ViewSimplifier.cs
- InputLanguageEventArgs.cs
- EntityDataSourceWrapperPropertyDescriptor.cs
- ConfigurationSectionCollection.cs
- HelpProvider.cs
- WebPartTransformerAttribute.cs
- __Filters.cs
- WebPartsSection.cs
- HostedTcpTransportManager.cs
- MessageHeaderT.cs
- MsmqInputChannelBase.cs
- DataKeyArray.cs
- MonikerProxyAttribute.cs
- _DisconnectOverlappedAsyncResult.cs
- Empty.cs
- SystemInfo.cs
- TrackingCondition.cs
- ComponentResourceKeyConverter.cs
- DbUpdateCommandTree.cs
- SerializationObjectManager.cs
- ByteConverter.cs
- DesignerActionUI.cs
- TextSpanModifier.cs
- CommonDialog.cs
- EdmEntityTypeAttribute.cs
- SystemUnicastIPAddressInformation.cs
- PerspectiveCamera.cs
- WebServiceMethodData.cs
- XamlVector3DCollectionSerializer.cs
- ToolBarTray.cs
- ByteFacetDescriptionElement.cs
- RequestQueryProcessor.cs
- TableLayoutStyleCollection.cs
- RuntimeConfig.cs
- ScriptingRoleServiceSection.cs
- ListViewPagedDataSource.cs
- KnownTypesProvider.cs
- ProxyAttribute.cs
- ReflectionTypeLoadException.cs
- HyperLinkColumn.cs
- SplineKeyFrames.cs
- _BaseOverlappedAsyncResult.cs
- CodeDirectoryCompiler.cs
- LambdaCompiler.Generated.cs
- LayoutEvent.cs
- XmlNodeReader.cs
- ItemContainerGenerator.cs
- TriState.cs
- Selector.cs
- Attribute.cs
- DataGridViewIntLinkedList.cs
- PartialClassGenerationTask.cs
- ChangePasswordDesigner.cs
- NamespaceCollection.cs
- SecurityKeyType.cs
- BookmarkResumptionRecord.cs
- XPathNavigator.cs
- followingsibling.cs
- SystemEvents.cs
- WsdlBuildProvider.cs
- GridViewRowCollection.cs
- BindUriHelper.cs
- IdnMapping.cs
- DragCompletedEventArgs.cs
- GenericsInstances.cs
- itemelement.cs
- QilGenerator.cs
- ObjectItemLoadingSessionData.cs
- JsonWriter.cs
- DomainLiteralReader.cs
- CharConverter.cs
- OrthographicCamera.cs
- CodeCompiler.cs
- StoreConnection.cs
- Decorator.cs
- CroppedBitmap.cs