Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Configuration / RuleInfoComparer.cs / 1 / 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; } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ApplicationDirectory.cs
- ListViewAutomationPeer.cs
- StylusSystemGestureEventArgs.cs
- RelationshipNavigation.cs
- DrawTreeNodeEventArgs.cs
- BoolLiteral.cs
- ItemList.cs
- ProcessModelSection.cs
- FileRecordSequence.cs
- WarningException.cs
- DocumentXPathNavigator.cs
- TripleDES.cs
- AppDomainManager.cs
- EntityDataSourceEntitySetNameItem.cs
- BindingListCollectionView.cs
- VBCodeProvider.cs
- ComponentDispatcherThread.cs
- TabControlCancelEvent.cs
- WebPartConnectVerb.cs
- LineBreakRecord.cs
- TextServicesContext.cs
- IndicCharClassifier.cs
- _WebProxyDataBuilder.cs
- BuildProvidersCompiler.cs
- ErrorFormatter.cs
- SystemWebExtensionsSectionGroup.cs
- _AcceptOverlappedAsyncResult.cs
- MonthCalendar.cs
- EnumBuilder.cs
- BinaryObjectWriter.cs
- ServiceModelPerformanceCounters.cs
- ActiveDocumentEvent.cs
- VarRefManager.cs
- TableProviderWrapper.cs
- Context.cs
- _LocalDataStore.cs
- DesignerVerbCollection.cs
- ToolStripGripRenderEventArgs.cs
- XmlImplementation.cs
- PersonalizationDictionary.cs
- BitmapCodecInfoInternal.cs
- CharUnicodeInfo.cs
- OleDbFactory.cs
- IIS7WorkerRequest.cs
- TemplatedMailWebEventProvider.cs
- AccessedThroughPropertyAttribute.cs
- ObjectNotFoundException.cs
- MetaType.cs
- ConfigXmlElement.cs
- Tag.cs
- DataGridParentRows.cs
- ClickablePoint.cs
- wgx_exports.cs
- ProxyHelper.cs
- SiteMapDataSource.cs
- IDataContractSurrogate.cs
- DynamicQueryableWrapper.cs
- MonitorWrapper.cs
- SecurityState.cs
- WindowProviderWrapper.cs
- PartBasedPackageProperties.cs
- AddInAttribute.cs
- DelegateArgument.cs
- ThreadStartException.cs
- ShaderRenderModeValidation.cs
- XmlAttributeAttribute.cs
- Semaphore.cs
- TextMarkerSource.cs
- CodeCatchClauseCollection.cs
- DesignerAutoFormatCollection.cs
- DocumentReference.cs
- Stack.cs
- ProgressBar.cs
- Comparer.cs
- LogLogRecordEnumerator.cs
- ControlHelper.cs
- InternalMappingException.cs
- SaveFileDialog.cs
- KeyEventArgs.cs
- Delegate.cs
- SqlServices.cs
- UserControlParser.cs
- AnnotationHighlightLayer.cs
- LocatorPart.cs
- SystemIPGlobalProperties.cs
- PropertyMetadata.cs
- dsa.cs
- FrugalList.cs
- ComponentCommands.cs
- OutOfProcStateClientManager.cs
- ExpressionDumper.cs
- OpCodes.cs
- SqlBuilder.cs
- SqlServer2KCompatibilityAnnotation.cs
- FontUnitConverter.cs
- MobileListItemCollection.cs
- Table.cs
- ClientCredentials.cs
- SetMemberBinder.cs
- SqlError.cs