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
- PersistenceTask.cs
- DataControlFieldCollection.cs
- tibetanshape.cs
- TypeListConverter.cs
- DeviceContexts.cs
- TreeNode.cs
- XmlSecureResolver.cs
- WinEventHandler.cs
- UInt64.cs
- EndEvent.cs
- PropertyGridEditorPart.cs
- KnownTypesHelper.cs
- XsdCachingReader.cs
- sqlinternaltransaction.cs
- PackUriHelper.cs
- ReadOnlyCollectionBase.cs
- WeakHashtable.cs
- DBSchemaTable.cs
- DetailsViewInsertEventArgs.cs
- ClaimSet.cs
- infer.cs
- LinkedResource.cs
- AuthenticationManager.cs
- WorkflowExecutor.cs
- AsymmetricCryptoHandle.cs
- WebResourceAttribute.cs
- ReadWriteSpinLock.cs
- MemoryStream.cs
- ListViewSortEventArgs.cs
- FileDialog.cs
- MatrixConverter.cs
- SchemaTypeEmitter.cs
- WithStatement.cs
- CodeDelegateCreateExpression.cs
- Repeater.cs
- XmlEnumAttribute.cs
- UIServiceHelper.cs
- LayoutEvent.cs
- DateTimeFormatInfoScanner.cs
- SizeKeyFrameCollection.cs
- mda.cs
- SafeMarshalContext.cs
- Stream.cs
- IERequestCache.cs
- ConvertersCollection.cs
- RSAPKCS1SignatureDeformatter.cs
- InputLanguageSource.cs
- ISFClipboardData.cs
- OutOfProcStateClientManager.cs
- GlyphInfoList.cs
- TextServicesCompartmentEventSink.cs
- BufferedGraphics.cs
- EngineSiteSapi.cs
- QuestionEventArgs.cs
- Utils.cs
- FixUpCollection.cs
- GifBitmapDecoder.cs
- XslUrlEditor.cs
- CodeAssignStatement.cs
- PieceDirectory.cs
- Filter.cs
- _TransmitFileOverlappedAsyncResult.cs
- MaterialGroup.cs
- TraceXPathNavigator.cs
- SocketException.cs
- MD5HashHelper.cs
- FontDriver.cs
- FixedSOMPage.cs
- MultiAsyncResult.cs
- FormsAuthenticationUser.cs
- WebConvert.cs
- ExtendedProtectionPolicyElement.cs
- TypeDescriptionProvider.cs
- CaseInsensitiveHashCodeProvider.cs
- TextBox.cs
- SrgsGrammarCompiler.cs
- ZoneLinkButton.cs
- Maps.cs
- CellRelation.cs
- DispatchChannelSink.cs
- XmlLanguage.cs
- QueryOutputWriter.cs
- PermissionSet.cs
- InstanceNotReadyException.cs
- MembershipPasswordException.cs
- SessionEndedEventArgs.cs
- InputScope.cs
- InstanceDataCollectionCollection.cs
- querybuilder.cs
- CachedFontFace.cs
- PkcsUtils.cs
- ValidatorCompatibilityHelper.cs
- Vector3DValueSerializer.cs
- HostingMessageProperty.cs
- mediapermission.cs
- DesignerLoader.cs
- IntegrationExceptionEventArgs.cs
- PropertyValue.cs
- AlignmentYValidation.cs
- PolyQuadraticBezierSegment.cs