Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / Configuration / RuleInfoComparer.cs / 2 / RuleInfoComparer.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Configuration { using System; using System.Xml; using System.Configuration; using System.Collections.Specialized; using System.Collections; using System.Globalization; using System.IO; using System.Text; using System.ComponentModel; using System.Web.Hosting; using System.Web.Util; using System.Web.Configuration; using System.Web.Management; using System.Web.Compilation; // // This class is used to compare two RuleInfo object. Basically, the array list // will be sorted based on class hierachical order. The smaller the value, the // more nearer the class is to the root (WebBaseEvent), in a class inheritance sense. // // On the other hand, if x > y, it means x is NOT a parent class of y. // // The array is sorted in this way so that if we want to find out the config setting of // an event class x, we start searching in a decreasing order, and the first entry (E) // that satifies the test: if (x is E), then we find the right settings for x. // // BTW, this is just a trick to save me from writing too much code. A n-node tree // method is faster, but I was too lazy. // internal class RuleInfoComparer : IComparer{ public int Compare(object x, object y) { int res; Type xType = ((HealthMonitoringSectionHelper.RuleInfo)x)._eventMappingSettings.RealType; Type yType = ((HealthMonitoringSectionHelper.RuleInfo)y)._eventMappingSettings.RealType; if (xType.Equals(yType)) { res = 0; } else if (xType.IsSubclassOf(yType)) { res = 1; } else if (yType.IsSubclassOf(xType)) { res = -1; } else { // If they're unrelated, we can't return 0 because it // will confuse the sorting method. // We can return 1 or -1, but it must be consistent. return String.Compare(xType.ToString(), yType.ToString(), StringComparison.Ordinal); } Debug.Trace("RuleInfoComparer", "xType=" + xType.ToString() + "; yType=" + yType.ToString() + "; res=" + res); return res; } } } // 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
- UserControlBuildProvider.cs
- StateValidator.cs
- StreamUpdate.cs
- ShapingEngine.cs
- sqlstateclientmanager.cs
- UnsafeNativeMethods.cs
- ColorContextHelper.cs
- GenericParameterDataContract.cs
- TimeManager.cs
- SimpleBitVector32.cs
- ListViewItem.cs
- DynamicRendererThreadManager.cs
- EdmToObjectNamespaceMap.cs
- PropertyPathConverter.cs
- VirtualDirectoryMappingCollection.cs
- ChameleonKey.cs
- UiaCoreTypesApi.cs
- InnerItemCollectionView.cs
- DataRecordInternal.cs
- VariableQuery.cs
- CounterSample.cs
- RootDesignerSerializerAttribute.cs
- ExceptQueryOperator.cs
- AccessibilityHelperForXpWin2k3.cs
- SystemWebCachingSectionGroup.cs
- infer.cs
- Converter.cs
- _OSSOCK.cs
- GenerateTemporaryAssemblyTask.cs
- GridView.cs
- WizardStepBase.cs
- CharConverter.cs
- Message.cs
- DataGridRow.cs
- Column.cs
- IImplicitResourceProvider.cs
- IChannel.cs
- CFStream.cs
- DynamicValueConverter.cs
- HttpWebRequest.cs
- InvalidComObjectException.cs
- WebConfigurationFileMap.cs
- WebPartHelpVerb.cs
- VoiceObjectToken.cs
- IQueryable.cs
- SoapIgnoreAttribute.cs
- HttpRequest.cs
- WebPartConnection.cs
- HttpResponseHeader.cs
- QueryInterceptorAttribute.cs
- OutKeywords.cs
- PageFunction.cs
- SystemParameters.cs
- SiteMap.cs
- cookiecontainer.cs
- JpegBitmapDecoder.cs
- AppDomainResourcePerfCounters.cs
- basenumberconverter.cs
- SqlDataSourceFilteringEventArgs.cs
- ApplicationId.cs
- PagesChangedEventArgs.cs
- SelectionBorderGlyph.cs
- ImageAutomationPeer.cs
- IssuedTokenClientBehaviorsElementCollection.cs
- MULTI_QI.cs
- DynamicValidatorEventArgs.cs
- Attribute.cs
- OracleTimeSpan.cs
- DefaultHttpHandler.cs
- FolderBrowserDialog.cs
- InstancePersistence.cs
- Point.cs
- RegistryDataKey.cs
- SolidColorBrush.cs
- ArrowControl.xaml.cs
- StatusInfoItem.cs
- Avt.cs
- SmiEventSink_Default.cs
- FrameworkContextData.cs
- TemplateInstanceAttribute.cs
- FunctionMappingTranslator.cs
- PrivilegeNotHeldException.cs
- CLRBindingWorker.cs
- Int16.cs
- FillBehavior.cs
- PackageProperties.cs
- Marshal.cs
- Group.cs
- GetWorkflowTree.cs
- SaveWorkflowCommand.cs
- IriParsingElement.cs
- PassportIdentity.cs
- WebServiceTypeData.cs
- DocumentPaginator.cs
- ThreadAbortException.cs
- RelatedCurrencyManager.cs
- PerformanceCounter.cs
- ProfileService.cs
- ClientApiGenerator.cs
- StreamReader.cs