Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- RoutedEventHandlerInfo.cs
- SmtpCommands.cs
- DelegateSerializationHolder.cs
- HeaderElement.cs
- TextRangeEditLists.cs
- WeakReference.cs
- Block.cs
- SafeBitVector32.cs
- DefaultMemberAttribute.cs
- BuildProvider.cs
- VisualStates.cs
- ImageCodecInfo.cs
- Item.cs
- AnonymousIdentificationModule.cs
- xmlfixedPageInfo.cs
- TabletDevice.cs
- InheritanceService.cs
- TableCell.cs
- XamlGridLengthSerializer.cs
- RolePrincipal.cs
- SqlBulkCopyColumnMapping.cs
- VirtualPath.cs
- SchemaObjectWriter.cs
- TypeTypeConverter.cs
- AssemblyInfo.cs
- XPathDocumentNavigator.cs
- DataGridItemAutomationPeer.cs
- HandlerBase.cs
- ToolStripPanelCell.cs
- DeferredReference.cs
- RuleSettings.cs
- CheckableControlBaseAdapter.cs
- ConfigurationManagerHelperFactory.cs
- StringCollection.cs
- EnumConverter.cs
- ChannelBinding.cs
- CommonXSendMessage.cs
- CqlLexerHelpers.cs
- RightsManagementEncryptedStream.cs
- StorageAssociationSetMapping.cs
- BitmapSizeOptions.cs
- StyleConverter.cs
- Inline.cs
- TdsParserStaticMethods.cs
- PersianCalendar.cs
- UntrustedRecipientException.cs
- SymbolPair.cs
- GeometryDrawing.cs
- RuntimeArgument.cs
- Misc.cs
- Storyboard.cs
- EntityKeyElement.cs
- HttpSysSettings.cs
- ServiceHostFactory.cs
- TreeNode.cs
- LayoutEditorPart.cs
- RemoteWebConfigurationHostServer.cs
- TraversalRequest.cs
- Deserializer.cs
- ResourcePermissionBaseEntry.cs
- ValidationRuleCollection.cs
- CqlErrorHelper.cs
- Compiler.cs
- SetterBase.cs
- WebPartConnection.cs
- CommonObjectSecurity.cs
- ClientSettingsStore.cs
- StylusPointDescription.cs
- initElementDictionary.cs
- ProgressChangedEventArgs.cs
- TdsParserStaticMethods.cs
- HitTestWithPointDrawingContextWalker.cs
- AttributedMetaModel.cs
- EntityWrapper.cs
- BlurEffect.cs
- DataGridTable.cs
- NotifyInputEventArgs.cs
- ShaderEffect.cs
- BitmapFrameDecode.cs
- EntityModelSchemaGenerator.cs
- EntityCommandDefinition.cs
- ColumnMap.cs
- SqlRowUpdatingEvent.cs
- ComAdminWrapper.cs
- COM2ExtendedTypeConverter.cs
- MobileSysDescriptionAttribute.cs
- FunctionImportElement.cs
- DrawingBrush.cs
- PolicyLevel.cs
- QilLoop.cs
- ConnectivityStatus.cs
- ResourcesBuildProvider.cs
- InstanceHandle.cs
- SettingsPropertyValue.cs
- XmlExtensionFunction.cs
- PictureBox.cs
- AutomationEvent.cs
- OpCodes.cs
- SafeNativeMethods.cs
- SocketPermission.cs