Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / MIT / System / Web / Mobile / DeviceFilterDictionary.cs / 1305376 / DeviceFilterDictionary.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Mobile { using System.Web; using System.Collections; using System.Reflection; using System.Diagnostics; using System.ComponentModel; [Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")] internal class DeviceFilterDictionary { internal class ComparisonEvaluator { internal readonly String capabilityName; internal readonly String capabilityArgument; internal ComparisonEvaluator(String name, String argument) { Debug.Assert(name != null); capabilityName = name; capabilityArgument = argument; } } private Hashtable _comparisonEvaluators = null; private Hashtable _delegateEvaluators = null; internal DeviceFilterDictionary() { _comparisonEvaluators = new Hashtable(); _delegateEvaluators = new Hashtable(); } internal DeviceFilterDictionary(DeviceFilterDictionary original) { _comparisonEvaluators = (Hashtable)original._comparisonEvaluators.Clone(); _delegateEvaluators = (Hashtable)original._delegateEvaluators.Clone(); } internal void AddCapabilityDelegate(String delegateName, MobileCapabilities.EvaluateCapabilitiesDelegate evaluator) { _delegateEvaluators[delegateName] = evaluator; } private void CheckForComparisonDelegateLoops(String delegateName) { String nextDelegateName = delegateName; Hashtable alreadyReferencedDelegates = new Hashtable(); while(true) { ComparisonEvaluator nextComparisonEvaluator = (ComparisonEvaluator)_comparisonEvaluators[nextDelegateName]; if(nextComparisonEvaluator == null) { break; } if(alreadyReferencedDelegates.Contains(nextDelegateName)) { String msg = SR.GetString(SR.DevFiltDict_FoundLoop, nextComparisonEvaluator.capabilityName, delegateName); throw new Exception(msg); } alreadyReferencedDelegates[nextDelegateName] = null; nextDelegateName = nextComparisonEvaluator.capabilityName; } } internal void AddComparisonDelegate(String delegateName, String comparisonName, String argument) { _comparisonEvaluators[delegateName] = new ComparisonEvaluator(comparisonName, argument); CheckForComparisonDelegateLoops(delegateName); } internal bool FindComparisonEvaluator(String evaluatorName, out String capabilityName, out String capabilityArgument) { capabilityName = null; capabilityArgument = null; ComparisonEvaluator evaluator = (ComparisonEvaluator)_comparisonEvaluators[evaluatorName]; if(evaluator == null) { return false; } capabilityName = evaluator.capabilityName; capabilityArgument = evaluator.capabilityArgument; return true; } internal bool FindDelegateEvaluator(String evaluatorName, out MobileCapabilities.EvaluateCapabilitiesDelegate evaluatorDelegate) { evaluatorDelegate = null; MobileCapabilities.EvaluateCapabilitiesDelegate evaluator; evaluator = (MobileCapabilities.EvaluateCapabilitiesDelegate) _delegateEvaluators[evaluatorName]; if(evaluator == null) { return false; } evaluatorDelegate = evaluator; return true; } internal bool IsComparisonEvaluator(String evaluatorName) { return _comparisonEvaluators.Contains(evaluatorName); } internal bool IsDelegateEvaluator(String evaluatorName) { return _delegateEvaluators.Contains(evaluatorName); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ADRole.cs
- Enum.cs
- FileDataSourceCache.cs
- StoragePropertyMapping.cs
- DataGridViewLinkCell.cs
- DesignerActionService.cs
- ResourcesBuildProvider.cs
- AsyncCompletedEventArgs.cs
- LinkButton.cs
- CqlLexerHelpers.cs
- UnitySerializationHolder.cs
- XmlSubtreeReader.cs
- SqlGatherConsumedAliases.cs
- ArraySortHelper.cs
- XmlIgnoreAttribute.cs
- ToolStripSettings.cs
- ItemsChangedEventArgs.cs
- SimplePropertyEntry.cs
- RuleInfoComparer.cs
- TransformValueSerializer.cs
- DependencyObjectPropertyDescriptor.cs
- SatelliteContractVersionAttribute.cs
- SmtpFailedRecipientException.cs
- Dynamic.cs
- ServicePointManagerElement.cs
- StorageTypeMapping.cs
- CharacterBuffer.cs
- FrameworkElementFactoryMarkupObject.cs
- BuildProvider.cs
- MimeMultiPart.cs
- ArgumentException.cs
- SystemIPv6InterfaceProperties.cs
- XsltFunctions.cs
- DiscoveryEndpointValidator.cs
- NativeWrapper.cs
- XmlSerializerFactory.cs
- IndexOutOfRangeException.cs
- StorageComplexTypeMapping.cs
- Pkcs9Attribute.cs
- TCEAdapterGenerator.cs
- DispatcherHookEventArgs.cs
- StaticTextPointer.cs
- SqlMultiplexer.cs
- AutomationElement.cs
- XmlUtilWriter.cs
- CngKeyBlobFormat.cs
- ListViewItemSelectionChangedEvent.cs
- DataControlFieldCell.cs
- ToolStripSplitStackLayout.cs
- Currency.cs
- MsmqIntegrationElement.cs
- StatusBarAutomationPeer.cs
- FixedTextContainer.cs
- DataGridCellsPanel.cs
- MetabaseSettingsIis7.cs
- XmlLanguage.cs
- ClientSession.cs
- BitmapInitialize.cs
- _AuthenticationState.cs
- HotSpotCollection.cs
- BaseAsyncResult.cs
- ValidatingCollection.cs
- LocationUpdates.cs
- HtmlLiteralTextAdapter.cs
- PageStatePersister.cs
- DataBindingCollection.cs
- ISAPIApplicationHost.cs
- ListViewContainer.cs
- MaskInputRejectedEventArgs.cs
- COM2PictureConverter.cs
- InvokeWebService.cs
- SchemaAttDef.cs
- StyleBamlTreeBuilder.cs
- COM2IManagedPerPropertyBrowsingHandler.cs
- HwndProxyElementProvider.cs
- SystemSounds.cs
- DeclarativeCatalogPart.cs
- IndexOutOfRangeException.cs
- ByteStack.cs
- ConstraintConverter.cs
- TextSelection.cs
- PackagePart.cs
- SerialErrors.cs
- ToolStripArrowRenderEventArgs.cs
- CryptoApi.cs
- ComplexType.cs
- base64Transforms.cs
- SecurityPolicySection.cs
- CompilerCollection.cs
- SoapSchemaMember.cs
- DetectRunnableInstancesTask.cs
- ListenerSingletonConnectionReader.cs
- LineBreakRecord.cs
- Rotation3D.cs
- SqlParameter.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- IsolatedStorageFileStream.cs
- BitmapFrameEncode.cs
- WebDescriptionAttribute.cs
- COM2EnumConverter.cs