Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Configuration / RuleInfoComparer.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WebPartConnection.cs
- HTMLTextWriter.cs
- ExtendedPropertyDescriptor.cs
- WebPartCatalogCloseVerb.cs
- WebConfigurationFileMap.cs
- HttpPostLocalhostServerProtocol.cs
- IDQuery.cs
- CodeGroup.cs
- JsonReaderDelegator.cs
- TextServicesDisplayAttribute.cs
- SolidColorBrush.cs
- SecurityHeaderElementInferenceEngine.cs
- HashRepartitionEnumerator.cs
- DiscoveryDefaults.cs
- TextServicesDisplayAttribute.cs
- WebHttpBindingCollectionElement.cs
- FilteredDataSetHelper.cs
- _ConnectionGroup.cs
- ComplexTypeEmitter.cs
- LinqDataView.cs
- NumberFormatInfo.cs
- ViewSimplifier.cs
- GlyphRun.cs
- webeventbuffer.cs
- ArgumentOutOfRangeException.cs
- Int64.cs
- SelectedGridItemChangedEvent.cs
- Point.cs
- baseaxisquery.cs
- SqlNotificationRequest.cs
- StatusBarItemAutomationPeer.cs
- EditorPart.cs
- LingerOption.cs
- ParserHooks.cs
- SqlBinder.cs
- BuildResultCache.cs
- BoundPropertyEntry.cs
- MouseButtonEventArgs.cs
- DataGridCaption.cs
- Decimal.cs
- RenderOptions.cs
- ListViewGroup.cs
- DirectoryObjectSecurity.cs
- ProtectedConfiguration.cs
- XPathAxisIterator.cs
- Property.cs
- WebPartZone.cs
- ToolStripDropDownClosedEventArgs.cs
- ActivityExecutionContextCollection.cs
- EventLogEntryCollection.cs
- Frame.cs
- WorkflowOperationContext.cs
- GuidelineCollection.cs
- FileSystemInfo.cs
- SettingsPropertyWrongTypeException.cs
- IpcChannelHelper.cs
- BitmapPalette.cs
- XmlSchemaType.cs
- DocumentSchemaValidator.cs
- DynamicMethod.cs
- BaseParser.cs
- ImageDrawing.cs
- DBCommandBuilder.cs
- SqlWebEventProvider.cs
- DocumentApplicationJournalEntry.cs
- OleDbConnectionInternal.cs
- XPathAncestorQuery.cs
- DataExpression.cs
- GraphicsState.cs
- WindowsScrollBar.cs
- XPathNavigatorKeyComparer.cs
- AsyncPostBackErrorEventArgs.cs
- PrintEvent.cs
- ConfigXmlSignificantWhitespace.cs
- DrawingAttributeSerializer.cs
- HttpWebRequest.cs
- Label.cs
- DataRowExtensions.cs
- XComponentModel.cs
- DivideByZeroException.cs
- InfoCardBinaryReader.cs
- HtmlTitle.cs
- KeyGestureConverter.cs
- OneWayChannelListener.cs
- ChildDocumentBlock.cs
- ToolStripSeparator.cs
- ContainerParaClient.cs
- XmlTypeMapping.cs
- SqlUdtInfo.cs
- CommonObjectSecurity.cs
- HierarchicalDataBoundControlAdapter.cs
- RankException.cs
- InstanceLockQueryResult.cs
- CookielessHelper.cs
- SynchronizationContext.cs
- CqlLexer.cs
- DoubleAnimationBase.cs
- DataGridViewTextBoxCell.cs
- ReadOnlyObservableCollection.cs
- CompositeDesignerAccessibleObject.cs