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
- SerializationInfo.cs
- EnumMember.cs
- BatchStream.cs
- WebPartEditorApplyVerb.cs
- DBDataPermission.cs
- OrderByLifter.cs
- PerformanceCountersElement.cs
- EncoderExceptionFallback.cs
- RelativeSource.cs
- TextBoxBase.cs
- _ListenerAsyncResult.cs
- ConnectorMovedEventArgs.cs
- NameTable.cs
- PrinterResolution.cs
- XsdBuilder.cs
- documentsequencetextcontainer.cs
- AxHost.cs
- DynamicResourceExtensionConverter.cs
- EdmProviderManifest.cs
- DrawingVisualDrawingContext.cs
- DataGridViewColumnTypePicker.cs
- isolationinterop.cs
- WebRequestModuleElement.cs
- ClonableStack.cs
- DebugViewWriter.cs
- NamespaceInfo.cs
- ReachUIElementCollectionSerializer.cs
- RSACryptoServiceProvider.cs
- WaitHandleCannotBeOpenedException.cs
- _AutoWebProxyScriptWrapper.cs
- DataServiceQueryProvider.cs
- XPathDocument.cs
- Bitmap.cs
- FrameworkElementFactory.cs
- AnimationStorage.cs
- ForceCopyBuildProvider.cs
- DataSourceXmlSubItemAttribute.cs
- shaperfactory.cs
- PropertyGeneratedEventArgs.cs
- ContentType.cs
- MsmqIntegrationSecurity.cs
- UdpUtility.cs
- CatalogPartCollection.cs
- CacheMemory.cs
- AppLevelCompilationSectionCache.cs
- BitmapEffectInputData.cs
- EditingMode.cs
- Animatable.cs
- EntityContainerEntitySet.cs
- XmlLanguage.cs
- BaseServiceProvider.cs
- SelectionProviderWrapper.cs
- EnumValAlphaComparer.cs
- Part.cs
- InplaceBitmapMetadataWriter.cs
- InfoCardMetadataExchangeClient.cs
- LineProperties.cs
- RegexFCD.cs
- DragDrop.cs
- TreeViewImageKeyConverter.cs
- ResourceCodeDomSerializer.cs
- PassportIdentity.cs
- DoubleLinkListEnumerator.cs
- XpsColorContext.cs
- URLIdentityPermission.cs
- InputScope.cs
- SQLUtility.cs
- ClientTarget.cs
- IdentityModelStringsVersion1.cs
- ObjRef.cs
- SafeNativeMethods.cs
- _TimerThread.cs
- VisualStyleRenderer.cs
- Point4DValueSerializer.cs
- StorageConditionPropertyMapping.cs
- IndexerHelper.cs
- OutputCacheProfile.cs
- ChildrenQuery.cs
- ConfigsHelper.cs
- RectAnimation.cs
- RectAnimationClockResource.cs
- InfocardInteractiveChannelInitializer.cs
- DynamicMethod.cs
- CheckBoxRenderer.cs
- WizardStepCollectionEditor.cs
- DefaultProxySection.cs
- FixedPosition.cs
- DataGridColumnCollectionEditor.cs
- FormParameter.cs
- GridProviderWrapper.cs
- CodeNamespaceImportCollection.cs
- ProfileProvider.cs
- EmptyEnumerator.cs
- AnonymousIdentificationModule.cs
- UrlMappingsSection.cs
- CaseInsensitiveOrdinalStringComparer.cs
- DiscoveryServiceExtension.cs
- PrintPreviewControl.cs
- OciLobLocator.cs
- DBSqlParserColumn.cs