Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
![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
- ValidationService.cs
- MarkupWriter.cs
- CompoundFileDeflateTransform.cs
- QueryExecutionOption.cs
- XmlTextReaderImpl.cs
- DataMisalignedException.cs
- EntityViewContainer.cs
- AttributeAction.cs
- DataGridColumn.cs
- UnderstoodHeaders.cs
- WpfWebRequestHelper.cs
- Int64KeyFrameCollection.cs
- NavigateEvent.cs
- DataServiceBuildProvider.cs
- XmlSchemaSimpleTypeUnion.cs
- WebProxyScriptElement.cs
- PersonalizablePropertyEntry.cs
- NavigatorOutput.cs
- ImportFileRequest.cs
- SqlBulkCopy.cs
- MethodBuilderInstantiation.cs
- EdmConstants.cs
- ResourceLoader.cs
- DataSourceControlBuilder.cs
- ProxyElement.cs
- SQLBinary.cs
- QueryStringParameter.cs
- Visitor.cs
- LogicalMethodInfo.cs
- SqlDataSourceSelectingEventArgs.cs
- XhtmlConformanceSection.cs
- precedingsibling.cs
- LookupBindingPropertiesAttribute.cs
- Timeline.cs
- ButtonDesigner.cs
- odbcmetadatacollectionnames.cs
- AsyncContentLoadedEventArgs.cs
- DummyDataSource.cs
- DbProviderSpecificTypePropertyAttribute.cs
- ReadOnlyMetadataCollection.cs
- XmlSchemaSimpleContent.cs
- DashStyle.cs
- HostUtils.cs
- ItemsControlAutomationPeer.cs
- OleDbConnectionFactory.cs
- ParagraphResult.cs
- panel.cs
- AssemblyLoader.cs
- InstancePersistenceCommandException.cs
- DbQueryCommandTree.cs
- SchemaEntity.cs
- PropertyInfo.cs
- SystemIPv6InterfaceProperties.cs
- Random.cs
- CancellationToken.cs
- DataGridViewButtonColumn.cs
- TemplateControlBuildProvider.cs
- InvalidEnumArgumentException.cs
- WebPartAddingEventArgs.cs
- ComPlusTypeValidator.cs
- Assert.cs
- IntSecurity.cs
- SqlDataSourceFilteringEventArgs.cs
- PopupEventArgs.cs
- LockCookie.cs
- SafeIUnknown.cs
- counter.cs
- Transform.cs
- Pair.cs
- MultiDataTrigger.cs
- ListenerConnectionModeReader.cs
- FragmentQueryKB.cs
- NumberSubstitution.cs
- GeneralTransform3DCollection.cs
- SqlTriggerAttribute.cs
- EntityDataSourceViewSchema.cs
- SafeRightsManagementEnvironmentHandle.cs
- OverloadGroupAttribute.cs
- XmlUtil.cs
- StringToken.cs
- DecoderFallback.cs
- XamlReader.cs
- ColorAnimationBase.cs
- WSSecurityOneDotZeroReceiveSecurityHeader.cs
- WinEventWrap.cs
- TryCatchDesigner.xaml.cs
- SqlCachedBuffer.cs
- PreProcessor.cs
- OpenTypeCommon.cs
- RotateTransform.cs
- _NtlmClient.cs
- CAGDesigner.cs
- GeometryGroup.cs
- AddInAttribute.cs
- OleDbParameter.cs
- DbConnectionFactory.cs
- HierarchicalDataBoundControl.cs
- HtmlTextArea.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- ObjectConverter.cs