Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// 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
- CodeAccessSecurityEngine.cs
- Helper.cs
- AssemblyUtil.cs
- SafeTokenHandle.cs
- HttpStaticObjectsCollectionBase.cs
- ThreadExceptionEvent.cs
- xmlglyphRunInfo.cs
- StandardBindingImporter.cs
- HostingEnvironment.cs
- XmlSchemaObjectTable.cs
- ToolBarOverflowPanel.cs
- Error.cs
- TextElementEditingBehaviorAttribute.cs
- State.cs
- AttributeEmitter.cs
- XmlSerializationWriter.cs
- SqlTypeSystemProvider.cs
- ContainerSelectorBehavior.cs
- RecommendedAsConfigurableAttribute.cs
- SessionStateContainer.cs
- BinarySerializer.cs
- AttachmentCollection.cs
- TransformGroup.cs
- SimpleApplicationHost.cs
- PeerResolverElement.cs
- PolicyLevel.cs
- fixedPageContentExtractor.cs
- _ProxyChain.cs
- DynamicUpdateCommand.cs
- TableStyle.cs
- _BasicClient.cs
- ListBase.cs
- SoapMessage.cs
- DbProviderConfigurationHandler.cs
- WebPartDisplayModeCancelEventArgs.cs
- ItemsPresenter.cs
- ReadOnlyAttribute.cs
- StrongNameMembershipCondition.cs
- MessageFilterTable.cs
- CharEnumerator.cs
- DiscoveryDocumentSearchPattern.cs
- Highlights.cs
- InvalidCommandTreeException.cs
- ItemsChangedEventArgs.cs
- WindowsHyperlink.cs
- RowUpdatedEventArgs.cs
- SplitterPanel.cs
- DataGridViewCellCancelEventArgs.cs
- BooleanExpr.cs
- TreeWalker.cs
- IsolatedStorageException.cs
- WebPartConnectVerb.cs
- Function.cs
- FirewallWrapper.cs
- WindowsProgressbar.cs
- Mouse.cs
- BindingCollection.cs
- Point3DKeyFrameCollection.cs
- UnknownExceptionActionHelper.cs
- WindowsToolbarItemAsMenuItem.cs
- WindowsPen.cs
- TypeDelegator.cs
- EntitySqlQueryBuilder.cs
- Point.cs
- FixedBufferAttribute.cs
- XmlDocumentFragment.cs
- ListViewGroup.cs
- GacUtil.cs
- TraceListeners.cs
- MsmqIntegrationSecurity.cs
- MatrixCamera.cs
- OdbcDataAdapter.cs
- PermissionListSet.cs
- behaviorssection.cs
- XmlIlTypeHelper.cs
- ProvideValueServiceProvider.cs
- DBDataPermission.cs
- SoapIncludeAttribute.cs
- DataFormats.cs
- SiteMembershipCondition.cs
- HintTextMaxWidthConverter.cs
- ListSourceHelper.cs
- TemplateContainer.cs
- CodeGeneratorOptions.cs
- UniqueIdentifierService.cs
- MetadataWorkspace.cs
- DbConnectionPool.cs
- AstTree.cs
- BindingContext.cs
- DeviceFilterDictionary.cs
- DataGridViewRowCancelEventArgs.cs
- WebPartCancelEventArgs.cs
- FixedLineResult.cs
- WebUtil.cs
- TargetInvocationException.cs
- Marshal.cs
- RsaSecurityKey.cs
- WmlLabelAdapter.cs
- XmlIterators.cs
- SelectQueryOperator.cs