Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Configuration / System / Configuration / SubclassTypeValidator.cs / 1 / SubclassTypeValidator.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Collections; using System.IO; using System.Reflection; using System.Security.Permissions; using System.Xml; using System.Collections.Specialized; using System.Globalization; using System.ComponentModel; using System.Security; using System.Text; using System.Text.RegularExpressions; namespace System.Configuration { // This class validates that the value is a subclass of a specified type public sealed class SubclassTypeValidator : ConfigurationValidatorBase { private Type _base; public SubclassTypeValidator(Type baseClass) { if (baseClass == null) { throw new ArgumentNullException("baseClass"); } _base = baseClass; } public override bool CanValidate(Type type) { return (type == typeof(Type)); } public override void Validate(object value) { if (value == null) { return; } // Make a check here since value.GetType() returns RuntimeType rather then Type if (!(value is Type)) { ValidatorUtils.HelperParamValidation(value, typeof(Type)); } if (!_base.IsAssignableFrom((Type)value)) { throw new ArgumentException(SR.GetString(SR.Subclass_validator_error, ((Type)value).FullName, _base.FullName)); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Collections; using System.IO; using System.Reflection; using System.Security.Permissions; using System.Xml; using System.Collections.Specialized; using System.Globalization; using System.ComponentModel; using System.Security; using System.Text; using System.Text.RegularExpressions; namespace System.Configuration { // This class validates that the value is a subclass of a specified type public sealed class SubclassTypeValidator : ConfigurationValidatorBase { private Type _base; public SubclassTypeValidator(Type baseClass) { if (baseClass == null) { throw new ArgumentNullException("baseClass"); } _base = baseClass; } public override bool CanValidate(Type type) { return (type == typeof(Type)); } public override void Validate(object value) { if (value == null) { return; } // Make a check here since value.GetType() returns RuntimeType rather then Type if (!(value is Type)) { ValidatorUtils.HelperParamValidation(value, typeof(Type)); } if (!_base.IsAssignableFrom((Type)value)) { throw new ArgumentException(SR.GetString(SR.Subclass_validator_error, ((Type)value).FullName, _base.FullName)); } } } } // 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
- TreeViewAutomationPeer.cs
- EntitySqlQueryCacheKey.cs
- LinqDataSource.cs
- MissingSatelliteAssemblyException.cs
- CompareInfo.cs
- CommandPlan.cs
- WsdlBuildProvider.cs
- ThicknessKeyFrameCollection.cs
- COAUTHIDENTITY.cs
- RecognizedPhrase.cs
- StandardMenuStripVerb.cs
- ArrayWithOffset.cs
- DynamicILGenerator.cs
- Rules.cs
- PersonalizablePropertyEntry.cs
- DateTimeOffsetConverter.cs
- AttributeCollection.cs
- ListenerConnectionDemuxer.cs
- FontClient.cs
- ThrowHelper.cs
- BufferAllocator.cs
- MembershipAdapter.cs
- DecoderExceptionFallback.cs
- EarlyBoundInfo.cs
- SynchronizedDispatch.cs
- ConfigXmlDocument.cs
- ConnectionManagementElementCollection.cs
- CheckBox.cs
- BlockCollection.cs
- DescendantQuery.cs
- MenuItem.cs
- FormViewDeletedEventArgs.cs
- DisplayInformation.cs
- ConfigurationCollectionAttribute.cs
- ServiceModelDictionary.cs
- PointCollection.cs
- EditorPartChrome.cs
- PrintDialog.cs
- serverconfig.cs
- FrameDimension.cs
- XmlSchemaValidationException.cs
- Activator.cs
- Graphics.cs
- WindowInteropHelper.cs
- GeometryModel3D.cs
- BoolLiteral.cs
- SqlFunctionAttribute.cs
- TextBoxDesigner.cs
- Oid.cs
- PeerApplicationLaunchInfo.cs
- Stream.cs
- PageThemeCodeDomTreeGenerator.cs
- RelationshipEnd.cs
- DropShadowBitmapEffect.cs
- DesignerProperties.cs
- CodeArrayCreateExpression.cs
- CalendarDataBindingHandler.cs
- XmlSiteMapProvider.cs
- TextBox.cs
- CustomAttributeFormatException.cs
- TransformerInfoCollection.cs
- ErrorReporting.cs
- SchemaConstraints.cs
- TextBoxRenderer.cs
- Tablet.cs
- CanExecuteRoutedEventArgs.cs
- DeferredReference.cs
- PropertyChangedEventManager.cs
- TextRunProperties.cs
- MenuItemCollection.cs
- FactoryId.cs
- WebPartEditorCancelVerb.cs
- WebPartManagerDesigner.cs
- ETagAttribute.cs
- ListenerElementsCollection.cs
- StateFinalizationActivity.cs
- SyntaxCheck.cs
- InsufficientMemoryException.cs
- XmlNavigatorStack.cs
- Timeline.cs
- SmtpFailedRecipientsException.cs
- SimpleFieldTemplateUserControl.cs
- FileDialog_Vista.cs
- TransformerConfigurationWizardBase.cs
- _RequestLifetimeSetter.cs
- _BaseOverlappedAsyncResult.cs
- FileAuthorizationModule.cs
- WindowsIdentity.cs
- DataServiceEntityAttribute.cs
- IQueryable.cs
- RadioButtonStandardAdapter.cs
- AttachedPropertyBrowsableAttribute.cs
- SmtpMail.cs
- TextServicesDisplayAttribute.cs
- SQLMoney.cs
- ScalarOps.cs
- Visitor.cs
- HttpConfigurationContext.cs
- TableItemProviderWrapper.cs
- TemplateBindingExpressionConverter.cs