Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EntityClientCacheKey.cs
- WebCategoryAttribute.cs
- StylusEditingBehavior.cs
- WebPartZone.cs
- _DisconnectOverlappedAsyncResult.cs
- ListenerPerfCounters.cs
- TraceContextRecord.cs
- odbcmetadatacolumnnames.cs
- Vector3D.cs
- ChannelServices.cs
- _LoggingObject.cs
- ManualResetEvent.cs
- ProviderConnectionPoint.cs
- UnknownWrapper.cs
- PointLightBase.cs
- PtsCache.cs
- XmlAutoDetectWriter.cs
- SecurityContext.cs
- StreamGeometry.cs
- XmlCodeExporter.cs
- PasswordTextNavigator.cs
- UInt16Converter.cs
- OutOfProcStateClientManager.cs
- StateMachine.cs
- XhtmlBasicListAdapter.cs
- KeyBinding.cs
- shaperfactoryquerycacheentry.cs
- AncillaryOps.cs
- Int16Storage.cs
- Pair.cs
- GridViewCellAutomationPeer.cs
- WriteFileContext.cs
- TdsParserStateObject.cs
- TextTreePropertyUndoUnit.cs
- Configuration.cs
- UniqueConstraint.cs
- TakeQueryOptionExpression.cs
- StickyNoteAnnotations.cs
- AddingNewEventArgs.cs
- SqlAliasesReferenced.cs
- BindValidationContext.cs
- GroupLabel.cs
- ObjectHandle.cs
- ReadWriteSpinLock.cs
- ProfilePropertySettings.cs
- SettingsPropertyNotFoundException.cs
- RealProxy.cs
- NoPersistScope.cs
- DataViewSettingCollection.cs
- httpstaticobjectscollection.cs
- StringFunctions.cs
- GridItemProviderWrapper.cs
- ValidationPropertyAttribute.cs
- XmlNodeList.cs
- XmlDownloadManager.cs
- MatrixIndependentAnimationStorage.cs
- EncodingStreamWrapper.cs
- WindowsListView.cs
- X500Name.cs
- IMembershipProvider.cs
- CompilerInfo.cs
- ProxyGenerationError.cs
- SplitterEvent.cs
- ServiceModelEnhancedConfigurationElementCollection.cs
- X509RecipientCertificateServiceElement.cs
- CallSiteHelpers.cs
- PerformanceCounterLib.cs
- COMException.cs
- WriterOutput.cs
- GetPageCompletedEventArgs.cs
- QueryOperator.cs
- UriExt.cs
- ErrorTableItemStyle.cs
- InputLanguage.cs
- Point3DIndependentAnimationStorage.cs
- Helpers.cs
- Encoding.cs
- BaseParser.cs
- OleStrCAMarshaler.cs
- DataControlExtensions.cs
- Sequence.cs
- ComponentGlyph.cs
- XmlILStorageConverter.cs
- Metafile.cs
- WebPartConnectionsCancelVerb.cs
- ClientUriBehavior.cs
- StringArrayConverter.cs
- ProfileInfo.cs
- EntityDataSourceColumn.cs
- DataRelation.cs
- ResolveNameEventArgs.cs
- DatagridviewDisplayedBandsData.cs
- ReflectionHelper.cs
- TargetInvocationException.cs
- LocalizableAttribute.cs
- DeviceContext.cs
- CallbackHandler.cs
- GridViewColumn.cs
- SimpleColumnProvider.cs
- DocumentSchemaValidator.cs