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
- CharEntityEncoderFallback.cs
- FormViewPagerRow.cs
- DesignTableCollection.cs
- KeyProperty.cs
- ProgressPage.cs
- CharKeyFrameCollection.cs
- WebPartMovingEventArgs.cs
- ServiceOperation.cs
- AppDomainAttributes.cs
- PackWebResponse.cs
- Panel.cs
- UnhandledExceptionEventArgs.cs
- FrameworkContentElement.cs
- BitmapScalingModeValidation.cs
- BufferedStream.cs
- DefaultPropertiesToSend.cs
- DefaultEvaluationContext.cs
- StylusLogic.cs
- DeclarativeCatalogPart.cs
- WorkflowTransactionOptions.cs
- VisualStyleInformation.cs
- XmlValueConverter.cs
- Axis.cs
- Double.cs
- HttpApplicationStateWrapper.cs
- While.cs
- IPEndPointCollection.cs
- Expression.cs
- OptimalBreakSession.cs
- InstanceOwner.cs
- ContainsRowNumberChecker.cs
- BitmapEffectInput.cs
- BatchWriter.cs
- XmlnsCompatibleWithAttribute.cs
- ThicknessConverter.cs
- Queue.cs
- TextParaClient.cs
- PatternMatcher.cs
- TraceHandlerErrorFormatter.cs
- Walker.cs
- HandleRef.cs
- VectorAnimation.cs
- ContractValidationHelper.cs
- TypeConverter.cs
- ApplicationException.cs
- SspiHelper.cs
- SHA1.cs
- XmlSchemaSearchPattern.cs
- Constraint.cs
- ErrorTolerantObjectWriter.cs
- WeakRefEnumerator.cs
- SafeRightsManagementPubHandle.cs
- DataServiceHostFactory.cs
- Dump.cs
- ServiceContractViewControl.Designer.cs
- RowToParametersTransformer.cs
- SecureConversationDriver.cs
- StackOverflowException.cs
- Point4D.cs
- StandardOleMarshalObject.cs
- RuleSet.cs
- SmiMetaDataProperty.cs
- DataGridItemAutomationPeer.cs
- GroupDescription.cs
- CounterCreationDataCollection.cs
- Matrix3DValueSerializer.cs
- XmlILAnnotation.cs
- SecurityTokenInclusionMode.cs
- WaitHandle.cs
- FixedSOMTable.cs
- TransformerInfoCollection.cs
- BatchWriter.cs
- ValidationRuleCollection.cs
- HostedTransportConfigurationManager.cs
- MouseEventArgs.cs
- InputScopeAttribute.cs
- WebWorkflowRole.cs
- ViewStateChangedEventArgs.cs
- InstanceData.cs
- AbstractSvcMapFileLoader.cs
- x509store.cs
- Asn1IntegerConverter.cs
- GroupItemAutomationPeer.cs
- ViewGenResults.cs
- DiscriminatorMap.cs
- Lease.cs
- DefaultPropertyAttribute.cs
- DirectoryNotFoundException.cs
- KeyMatchBuilder.cs
- ProgressBarBrushConverter.cs
- DiagnosticTrace.cs
- HtmlForm.cs
- Matrix3D.cs
- PersonalizationStateQuery.cs
- JsonByteArrayDataContract.cs
- ChildChangedEventArgs.cs
- HttpHandlerActionCollection.cs
- MethodToken.cs
- IxmlLineInfo.cs
- TextRunTypographyProperties.cs