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
- DrawTreeNodeEventArgs.cs
- ConnectorEditor.cs
- CaretElement.cs
- XmlDomTextWriter.cs
- DbModificationCommandTree.cs
- IDReferencePropertyAttribute.cs
- VisualProxy.cs
- SqlRewriteScalarSubqueries.cs
- DateTimeOffsetAdapter.cs
- PreviewKeyDownEventArgs.cs
- ReachFixedDocumentSerializer.cs
- CardSpaceShim.cs
- DesignerValidationSummaryAdapter.cs
- DifferencingCollection.cs
- SelectionRangeConverter.cs
- PageContentAsyncResult.cs
- Brush.cs
- Util.cs
- RawContentTypeMapper.cs
- WebPartCatalogAddVerb.cs
- SecurityUtils.cs
- DebugControllerThread.cs
- HtmlSelectionListAdapter.cs
- StateFinalizationActivity.cs
- BrushMappingModeValidation.cs
- StringArrayConverter.cs
- SpecialNameAttribute.cs
- SystemInfo.cs
- DaylightTime.cs
- ClientTargetSection.cs
- InnerItemCollectionView.cs
- TableCellCollection.cs
- ColumnResult.cs
- UnhandledExceptionEventArgs.cs
- TextDataBindingHandler.cs
- SchemaEntity.cs
- IndexedString.cs
- X509ChainPolicy.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- WebPartCloseVerb.cs
- OleDbDataAdapter.cs
- EdmPropertyAttribute.cs
- HScrollProperties.cs
- CounterCreationData.cs
- CompilerWrapper.cs
- SimpleHandlerBuildProvider.cs
- SatelliteContractVersionAttribute.cs
- TrackBarRenderer.cs
- ExpressionNode.cs
- DataGridViewDataErrorEventArgs.cs
- DataControlCommands.cs
- Misc.cs
- CompModHelpers.cs
- SharedHttpTransportManager.cs
- WSSecureConversationFeb2005.cs
- PanelStyle.cs
- IndividualDeviceConfig.cs
- HttpRequestBase.cs
- Form.cs
- InfocardClientCredentials.cs
- RegexReplacement.cs
- DispatcherBuilder.cs
- KnownBoxes.cs
- FrameAutomationPeer.cs
- AssemblySettingAttributes.cs
- BuiltInExpr.cs
- ThemeInfoAttribute.cs
- RealizationDrawingContextWalker.cs
- CodeTypeDeclaration.cs
- LayoutTableCell.cs
- X509RawDataKeyIdentifierClause.cs
- DebugHandleTracker.cs
- ReaderWriterLockWrapper.cs
- DataControlField.cs
- DateTimeConverter.cs
- LongValidatorAttribute.cs
- SafeFileMapViewHandle.cs
- SplineKeyFrames.cs
- HtmlHead.cs
- LayoutTableCell.cs
- ApplicationInterop.cs
- ConcatQueryOperator.cs
- CompositeCollection.cs
- XmlDocumentSerializer.cs
- SoapHeader.cs
- CompilerTypeWithParams.cs
- MethodAccessException.cs
- LineServicesCallbacks.cs
- PathParser.cs
- ProgressPage.cs
- LoginCancelEventArgs.cs
- SafeMarshalContext.cs
- PassportPrincipal.cs
- WebPartConnection.cs
- NumericPagerField.cs
- Task.cs
- BuilderInfo.cs
- SchemaImporterExtensionsSection.cs
- RangeBaseAutomationPeer.cs
- OperationDescriptionCollection.cs