Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- KeyGestureValueSerializer.cs
- VisualBrush.cs
- MultiViewDesigner.cs
- ListParagraph.cs
- SiteMapHierarchicalDataSourceView.cs
- SingleObjectCollection.cs
- GlobalizationAssembly.cs
- OleDbError.cs
- InOutArgumentConverter.cs
- CompleteWizardStep.cs
- SqlMethodCallConverter.cs
- BitmapEncoder.cs
- Exceptions.cs
- DataServiceQuery.cs
- CodeComment.cs
- NodeInfo.cs
- CellTreeNode.cs
- compensatingcollection.cs
- ViewStateChangedEventArgs.cs
- IProducerConsumerCollection.cs
- KerberosTicketHashIdentifierClause.cs
- CannotUnloadAppDomainException.cs
- JpegBitmapDecoder.cs
- CellCreator.cs
- ConcurrentDictionary.cs
- StrongNameIdentityPermission.cs
- GlobalizationSection.cs
- ServiceMoniker.cs
- SoapSchemaExporter.cs
- ImmutableObjectAttribute.cs
- PropertyMappingExceptionEventArgs.cs
- NameValueConfigurationElement.cs
- TextTreeFixupNode.cs
- SerializationException.cs
- IteratorDescriptor.cs
- ControlBuilder.cs
- HandlerBase.cs
- RegionIterator.cs
- DataGridViewSelectedRowCollection.cs
- GeneralTransform3DGroup.cs
- XmlDictionaryString.cs
- WasAdminWrapper.cs
- StorageAssociationTypeMapping.cs
- OperationCanceledException.cs
- SymmetricCryptoHandle.cs
- GenericIdentity.cs
- RoleGroup.cs
- ServiceReference.cs
- LinqDataSourceSelectEventArgs.cs
- Ref.cs
- ListBindingConverter.cs
- CodeArgumentReferenceExpression.cs
- _AutoWebProxyScriptEngine.cs
- CaseCqlBlock.cs
- TypeUtils.cs
- AttributeUsageAttribute.cs
- Stack.cs
- VerificationAttribute.cs
- XmlTextReaderImpl.cs
- ParserStreamGeometryContext.cs
- RenderingBiasValidation.cs
- DocumentViewerBaseAutomationPeer.cs
- Domain.cs
- SubstitutionList.cs
- DecimalAnimationUsingKeyFrames.cs
- WorkflowInstanceAbortedRecord.cs
- Drawing.cs
- TableFieldsEditor.cs
- SuppressedPackageProperties.cs
- TrustManagerMoreInformation.cs
- CorePropertiesFilter.cs
- XmlFileEditor.cs
- DataReceivedEventArgs.cs
- ProfileSection.cs
- HttpConfigurationSystem.cs
- OleDbTransaction.cs
- SystemGatewayIPAddressInformation.cs
- ErrorRuntimeConfig.cs
- StringBlob.cs
- TextBoxDesigner.cs
- QueryOperationResponseOfT.cs
- OletxResourceManager.cs
- cryptoapiTransform.cs
- SqlCommandBuilder.cs
- CodeSnippetStatement.cs
- exports.cs
- TextLine.cs
- DataServiceHostFactory.cs
- Storyboard.cs
- PageParser.cs
- DbgUtil.cs
- RuleSettingsCollection.cs
- DbConnectionPoolIdentity.cs
- DbDataRecord.cs
- TableCell.cs
- Thickness.cs
- NameTable.cs
- SessionStateItemCollection.cs
- CleanUpVirtualizedItemEventArgs.cs
- InstanceNameConverter.cs