Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- ConsumerConnectionPointCollection.cs
- SemaphoreSecurity.cs
- BulletedListEventArgs.cs
- CompModHelpers.cs
- _BaseOverlappedAsyncResult.cs
- NumberAction.cs
- ThrowHelper.cs
- PriorityQueue.cs
- XPathDocumentNavigator.cs
- glyphs.cs
- SystemUdpStatistics.cs
- WindowCollection.cs
- AccessDataSource.cs
- FormsAuthenticationEventArgs.cs
- FrameworkReadOnlyPropertyMetadata.cs
- Drawing.cs
- CompareInfo.cs
- SHA1CryptoServiceProvider.cs
- KeyboardDevice.cs
- StructuredTypeInfo.cs
- VirtualizedCellInfoCollection.cs
- SqlBulkCopy.cs
- AssociativeAggregationOperator.cs
- SqlEnums.cs
- DocumentViewerAutomationPeer.cs
- DataSpaceManager.cs
- DbConnectionPoolGroupProviderInfo.cs
- XmlMtomReader.cs
- SharedDp.cs
- DataServiceRequest.cs
- AutomationPropertyInfo.cs
- MobileSysDescriptionAttribute.cs
- WebContext.cs
- QilBinary.cs
- __Filters.cs
- EntityObject.cs
- Activator.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- XmlQueryCardinality.cs
- BroadcastEventHelper.cs
- PropertyTabAttribute.cs
- PathTooLongException.cs
- TreeBuilderXamlTranslator.cs
- ObjectTypeMapping.cs
- DSACryptoServiceProvider.cs
- ADMembershipProvider.cs
- Pen.cs
- ByteFacetDescriptionElement.cs
- GridSplitterAutomationPeer.cs
- FormatterServices.cs
- AssemblyBuilder.cs
- PageSettings.cs
- ImageList.cs
- CharacterHit.cs
- PixelShader.cs
- EdmTypeAttribute.cs
- EntityDataSourceWizardForm.cs
- XsltContext.cs
- BoundingRectTracker.cs
- XPathNodeIterator.cs
- DebugView.cs
- WaveHeader.cs
- HtmlInputFile.cs
- ReferenceSchema.cs
- FontStyle.cs
- _SSPIWrapper.cs
- AsymmetricKeyExchangeDeformatter.cs
- ReflectionServiceProvider.cs
- TableItemPatternIdentifiers.cs
- GridViewItemAutomationPeer.cs
- SoapIgnoreAttribute.cs
- RecognizerBase.cs
- SqlMetaData.cs
- Wildcard.cs
- SymLanguageVendor.cs
- DataFormats.cs
- ProjectionPruner.cs
- Misc.cs
- AutomationPatternInfo.cs
- PriorityQueue.cs
- RightsManagementInformation.cs
- QilInvokeEarlyBound.cs
- NumericUpDown.cs
- RSAProtectedConfigurationProvider.cs
- OlePropertyStructs.cs
- ColumnMapTranslator.cs
- Scripts.cs
- DataBoundControlAdapter.cs
- ConfigurationProperty.cs
- WmpBitmapEncoder.cs
- DetailsViewDeleteEventArgs.cs
- ResourceExpressionBuilder.cs
- AppDomainProtocolHandler.cs
- JournalNavigationScope.cs
- GatewayDefinition.cs
- AtlasWeb.Designer.cs
- CodeGroup.cs
- ClientUtils.cs
- SoapSchemaImporter.cs
- Dump.cs