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
- ConfigsHelper.cs
- EventData.cs
- ManifestSignedXml.cs
- CodeGenerator.cs
- LinqDataSource.cs
- ListViewUpdateEventArgs.cs
- DNS.cs
- OraclePermissionAttribute.cs
- WindowsStatusBar.cs
- NativeMethods.cs
- FixedNode.cs
- CompoundFileStreamReference.cs
- DataGridColumnEventArgs.cs
- CornerRadiusConverter.cs
- altserialization.cs
- DataGridTextBoxColumn.cs
- SqlDataSourceCommandEventArgs.cs
- Transform3DCollection.cs
- TreeWalkHelper.cs
- Deflater.cs
- NonParentingControl.cs
- BackgroundFormatInfo.cs
- TextTreeTextBlock.cs
- ApplicationSettingsBase.cs
- TextTreeRootTextBlock.cs
- PageAdapter.cs
- SelectionPatternIdentifiers.cs
- ImageCodecInfo.cs
- Message.cs
- ValueExpressions.cs
- SiteMapDataSource.cs
- Transform.cs
- ExitEventArgs.cs
- ParamArrayAttribute.cs
- ByteStorage.cs
- TextElement.cs
- SecurityKeyType.cs
- CryptographicAttribute.cs
- StreamWriter.cs
- ColorIndependentAnimationStorage.cs
- StatusBar.cs
- VectorAnimation.cs
- ServiceObjectContainer.cs
- BinHexEncoder.cs
- Model3D.cs
- WCFBuildProvider.cs
- WpfPayload.cs
- AccessControlEntry.cs
- CharacterString.cs
- BitmapScalingModeValidation.cs
- HelloMessageApril2005.cs
- ConfigXmlAttribute.cs
- ArgumentReference.cs
- DataGridCaption.cs
- Icon.cs
- DataError.cs
- xdrvalidator.cs
- XmlNamespaceMappingCollection.cs
- Propagator.cs
- TextTreeRootTextBlock.cs
- TableItemPatternIdentifiers.cs
- MemberDomainMap.cs
- StreamingContext.cs
- SizeConverter.cs
- ThemeableAttribute.cs
- NotifyInputEventArgs.cs
- DataGridTableCollection.cs
- XmlSubtreeReader.cs
- SqlFormatter.cs
- CellQuery.cs
- ShaderRenderModeValidation.cs
- ResourceDictionaryCollection.cs
- HtmlInputControl.cs
- HttpProxyCredentialType.cs
- DataGridViewCellFormattingEventArgs.cs
- DirectoryInfo.cs
- SharedPerformanceCounter.cs
- ConfigurationElement.cs
- WinOEToolBoxItem.cs
- PropertyContainer.cs
- StateInitializationDesigner.cs
- DebugView.cs
- WebResourceUtil.cs
- DataGridViewCellPaintingEventArgs.cs
- TemplateGroupCollection.cs
- AutoResetEvent.cs
- InheritedPropertyChangedEventArgs.cs
- NodeLabelEditEvent.cs
- QEncodedStream.cs
- EntityKey.cs
- PingReply.cs
- TextElementEditingBehaviorAttribute.cs
- TokenBasedSet.cs
- CodeArgumentReferenceExpression.cs
- ClientTargetCollection.cs
- LazyLoadBehavior.cs
- DateTimeFormatInfoScanner.cs
- Baml2006ReaderContext.cs
- DataSourceSelectArguments.cs
- Iis7Helper.cs