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
- RequiredAttributeAttribute.cs
- ISFTagAndGuidCache.cs
- AssemblyAttributesGoHere.cs
- ResourceContainer.cs
- UnsafeNativeMethods.cs
- ChangeProcessor.cs
- MultipleViewPattern.cs
- AccessibleObject.cs
- TransformGroup.cs
- BitmapInitialize.cs
- WebPartPersonalization.cs
- Crypto.cs
- EditorZoneAutoFormat.cs
- GridViewItemAutomationPeer.cs
- VectorAnimationBase.cs
- UnionCqlBlock.cs
- Point3DValueSerializer.cs
- ControlTemplate.cs
- SqlBuffer.cs
- BitmapEffectState.cs
- X509UI.cs
- MenuItemStyle.cs
- SelectionItemPattern.cs
- TraceSection.cs
- ResourcesChangeInfo.cs
- LinkedResourceCollection.cs
- InstancePersistenceException.cs
- JsonUriDataContract.cs
- _emptywebproxy.cs
- TreeNodeStyleCollection.cs
- WebPartConnectionsDisconnectVerb.cs
- HandlerFactoryCache.cs
- Substitution.cs
- ProxyHelper.cs
- FlatButtonAppearance.cs
- DesignDataSource.cs
- SimpleLine.cs
- WpfWebRequestHelper.cs
- DependencyPropertyChangedEventArgs.cs
- ConfigXmlAttribute.cs
- Point3DCollection.cs
- TransformCollection.cs
- VScrollBar.cs
- XmlSchemaNotation.cs
- CookieProtection.cs
- SamlAuthorityBinding.cs
- DataGridViewTextBoxCell.cs
- BuildProvider.cs
- FlowDocumentView.cs
- ServiceDurableInstance.cs
- CellLabel.cs
- Polyline.cs
- SeekStoryboard.cs
- QueryExpr.cs
- Calendar.cs
- LockedBorderGlyph.cs
- TiffBitmapEncoder.cs
- DesignerAdRotatorAdapter.cs
- Int32Collection.cs
- DataStreamFromComStream.cs
- ThreadPool.cs
- WinEventQueueItem.cs
- MetabaseServerConfig.cs
- GradientBrush.cs
- ComplexLine.cs
- SystemColors.cs
- ImpersonationContext.cs
- MouseBinding.cs
- HeaderUtility.cs
- Identity.cs
- QilFunction.cs
- WbemProvider.cs
- PathTooLongException.cs
- entityreference_tresulttype.cs
- SolidColorBrush.cs
- ByteConverter.cs
- CharacterHit.cs
- SocketPermission.cs
- Inflater.cs
- TextEditorCopyPaste.cs
- ZipPackagePart.cs
- CorrelationHandle.cs
- ScriptingProfileServiceSection.cs
- SmtpFailedRecipientException.cs
- Query.cs
- XamlPointCollectionSerializer.cs
- ResolveNameEventArgs.cs
- SqlFileStream.cs
- UnhandledExceptionEventArgs.cs
- MsmqDiagnostics.cs
- UnauthorizedWebPart.cs
- SplineKeyFrames.cs
- HtmlHistory.cs
- RuntimeArgumentHandle.cs
- ProvidersHelper.cs
- ComNativeDescriptor.cs
- Message.cs
- Operator.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- ObjectItemNoOpAssemblyLoader.cs