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
- SimpleBitVector32.cs
- XPathNode.cs
- XDeferredAxisSource.cs
- ShaperBuffers.cs
- RegexEditorDialog.cs
- Typeface.cs
- FrameworkContentElement.cs
- DataPagerFieldItem.cs
- ZipIOModeEnforcingStream.cs
- SafeLocalMemHandle.cs
- PrePrepareMethodAttribute.cs
- SrgsElementFactory.cs
- DataControlPagerLinkButton.cs
- TextAutomationPeer.cs
- DateTimeHelper.cs
- XmlHierarchyData.cs
- BitmapEffectGroup.cs
- RegexGroup.cs
- DecimalStorage.cs
- OleDbFactory.cs
- FormViewPagerRow.cs
- AffineTransform3D.cs
- SessionState.cs
- BaseProcessor.cs
- FontFamily.cs
- Int16Animation.cs
- Encoding.cs
- SQLConvert.cs
- SmiRecordBuffer.cs
- TokenBasedSet.cs
- EntitySet.cs
- NotifyIcon.cs
- Executor.cs
- IDictionary.cs
- FunctionImportElement.cs
- Point3DCollection.cs
- DbResourceAllocator.cs
- Validator.cs
- MemberInfoSerializationHolder.cs
- OrCondition.cs
- WorkflowPageSetupDialog.cs
- NonSerializedAttribute.cs
- ElapsedEventArgs.cs
- RunWorkerCompletedEventArgs.cs
- Crypto.cs
- KeySpline.cs
- DataBindEngine.cs
- RIPEMD160Managed.cs
- TypeUsageBuilder.cs
- InvalidPrinterException.cs
- ElementProxy.cs
- WSSecureConversationFeb2005.cs
- HWStack.cs
- WmpBitmapDecoder.cs
- StackBuilderSink.cs
- ZoomPercentageConverter.cs
- filewebresponse.cs
- CallContext.cs
- DBConnection.cs
- FormCollection.cs
- PhonemeConverter.cs
- shaper.cs
- InvalidOleVariantTypeException.cs
- ConsoleTraceListener.cs
- SchemaCollectionCompiler.cs
- SqlNamer.cs
- MenuItemStyleCollection.cs
- ViewGenResults.cs
- SiteMapDataSource.cs
- CapabilitiesUse.cs
- ReadingWritingEntityEventArgs.cs
- XmlSchemaSequence.cs
- TransactionContextValidator.cs
- ParserStreamGeometryContext.cs
- DoubleIndependentAnimationStorage.cs
- UIPermission.cs
- PopupRoot.cs
- SmtpNtlmAuthenticationModule.cs
- FlowDocumentPaginator.cs
- DesignRelation.cs
- ArrayTypeMismatchException.cs
- UrlPath.cs
- XmlSchemaObjectTable.cs
- PropertyDescriptorCollection.cs
- DataGridViewControlCollection.cs
- AxisAngleRotation3D.cs
- LoginView.cs
- CustomAttributeFormatException.cs
- CaseInsensitiveHashCodeProvider.cs
- ControlSerializer.cs
- Bitmap.cs
- Vector3DAnimation.cs
- WebResourceUtil.cs
- BaseProcessor.cs
- CurrencyManager.cs
- XmlKeywords.cs
- WebPartExportVerb.cs
- MatchingStyle.cs
- InputBinder.cs
- TextAutomationPeer.cs