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
- ListBoxAutomationPeer.cs
- DocumentViewerBaseAutomationPeer.cs
- FileStream.cs
- WebConfigManager.cs
- ForAllOperator.cs
- ProgressBarRenderer.cs
- TableAdapterManagerNameHandler.cs
- XPathSelfQuery.cs
- SqlClientMetaDataCollectionNames.cs
- DataGridViewRowEventArgs.cs
- PriorityBindingExpression.cs
- XsltCompileContext.cs
- PaginationProgressEventArgs.cs
- TypeUsage.cs
- BoolLiteral.cs
- StorageMappingFragment.cs
- ProfileSettingsCollection.cs
- RemotingService.cs
- ViewManager.cs
- PropertyValue.cs
- CheckableControlBaseAdapter.cs
- UIElement3D.cs
- WhiteSpaceTrimStringConverter.cs
- TransformPattern.cs
- ProfileParameter.cs
- CompileXomlTask.cs
- BufferBuilder.cs
- DataSourceCache.cs
- CurrentTimeZone.cs
- basenumberconverter.cs
- ByteRangeDownloader.cs
- CodePageEncoding.cs
- KeyboardEventArgs.cs
- SiteIdentityPermission.cs
- BooleanKeyFrameCollection.cs
- DrawListViewColumnHeaderEventArgs.cs
- WindowsTooltip.cs
- GestureRecognizer.cs
- GPStream.cs
- HostExecutionContextManager.cs
- CurrencyWrapper.cs
- RangeValidator.cs
- DictionarySectionHandler.cs
- XslNumber.cs
- ObjectDataSourceEventArgs.cs
- BoundsDrawingContextWalker.cs
- SafeHandles.cs
- AsyncResult.cs
- SystemWebExtensionsSectionGroup.cs
- Line.cs
- EventLogPermissionAttribute.cs
- EpmSyndicationContentSerializer.cs
- DispatcherEventArgs.cs
- InputBindingCollection.cs
- InplaceBitmapMetadataWriter.cs
- StorageFunctionMapping.cs
- _FtpControlStream.cs
- UserControlCodeDomTreeGenerator.cs
- CoreSwitches.cs
- WebHostScriptMappingsInstallComponent.cs
- PersonalizationEntry.cs
- Ipv6Element.cs
- BitmapEffectDrawingContextState.cs
- XPathAxisIterator.cs
- RepeatBehavior.cs
- CheckBoxStandardAdapter.cs
- HttpRawResponse.cs
- SqlException.cs
- RoutedUICommand.cs
- FamilyTypeface.cs
- HitTestDrawingContextWalker.cs
- SettingsPropertyIsReadOnlyException.cs
- WebPartConnection.cs
- BamlResourceDeserializer.cs
- CheckBox.cs
- xdrvalidator.cs
- EncryptedPackageFilter.cs
- AttributeData.cs
- UnknownBitmapDecoder.cs
- ValidationSummaryDesigner.cs
- FacetEnabledSchemaElement.cs
- XhtmlBasicImageAdapter.cs
- CompositeFontFamily.cs
- ReturnEventArgs.cs
- HttpCachePolicy.cs
- TextContainerHelper.cs
- DatagridviewDisplayedBandsData.cs
- CodeNamespaceCollection.cs
- SecurityUtils.cs
- SerializationHelper.cs
- ParallelForEach.cs
- XmlCodeExporter.cs
- WebBaseEventKeyComparer.cs
- DictionaryChange.cs
- PersonalizableTypeEntry.cs
- WebHeaderCollection.cs
- AppDomainProtocolHandler.cs
- MultipleViewProviderWrapper.cs
- ValidatorUtils.cs
- FaultException.cs