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
- DictionaryEntry.cs
- StreamResourceInfo.cs
- RawMouseInputReport.cs
- DialogResultConverter.cs
- _NegoState.cs
- PropertyChangeTracker.cs
- CompleteWizardStep.cs
- ToolStripDropTargetManager.cs
- ContentWrapperAttribute.cs
- SafeLibraryHandle.cs
- CodeComment.cs
- RangeBaseAutomationPeer.cs
- ConfigurationSectionGroupCollection.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- HealthMonitoringSectionHelper.cs
- TypeSystem.cs
- RSACryptoServiceProvider.cs
- CodeTypeDelegate.cs
- UnmanagedMemoryStreamWrapper.cs
- InProcStateClientManager.cs
- EnumValAlphaComparer.cs
- DisplayInformation.cs
- DataServiceSaveChangesEventArgs.cs
- PrintingPermission.cs
- DetailsViewInsertEventArgs.cs
- RecipientInfo.cs
- HttpCacheVary.cs
- ThemeDirectoryCompiler.cs
- ModelUtilities.cs
- LinkedResource.cs
- DbProviderServices.cs
- EqualityComparer.cs
- VersionedStreamOwner.cs
- ObjectDataSourceSelectingEventArgs.cs
- PagedDataSource.cs
- UshortList2.cs
- XmlnsCompatibleWithAttribute.cs
- TypeDependencyAttribute.cs
- DataContext.cs
- Mappings.cs
- RequestCacheManager.cs
- WinEventHandler.cs
- DecimalStorage.cs
- KerberosSecurityTokenProvider.cs
- ItemCheckEvent.cs
- ValidationPropertyAttribute.cs
- Quaternion.cs
- ZipPackagePart.cs
- DoubleCollection.cs
- Drawing.cs
- WebPageTraceListener.cs
- XmlSchemaElement.cs
- CellNormalizer.cs
- WebBrowser.cs
- XmlSchemaAny.cs
- AuthenticationModuleElement.cs
- RoleGroup.cs
- SpoolingTask.cs
- Style.cs
- ServiceEndpointElement.cs
- httpstaticobjectscollection.cs
- HelpEvent.cs
- CqlIdentifiers.cs
- XmlSchemaValidationException.cs
- ConfigurationManagerInternalFactory.cs
- InternalDuplexChannelFactory.cs
- ScriptingRoleServiceSection.cs
- Lookup.cs
- AutomationElementCollection.cs
- Util.cs
- MultipleViewPattern.cs
- AnnotationDocumentPaginator.cs
- EventSinkHelperWriter.cs
- TemplateParser.cs
- ButtonBase.cs
- DocumentCollection.cs
- ClientSettingsProvider.cs
- BinaryCommonClasses.cs
- DataTableCollection.cs
- Debug.cs
- CookieParameter.cs
- SafeNativeMethodsOther.cs
- ClientEventManager.cs
- SystemWebCachingSectionGroup.cs
- ClientRoleProvider.cs
- PageRanges.cs
- GraphicsPathIterator.cs
- ListView.cs
- RouteParametersHelper.cs
- DbParameterHelper.cs
- CurrentChangedEventManager.cs
- UrlMapping.cs
- SourceFileInfo.cs
- Label.cs
- DbProviderFactory.cs
- ValidationRuleCollection.cs
- SinglePageViewer.cs
- EventRoute.cs
- DynamicEntity.cs
- _HelperAsyncResults.cs