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
- SmiEventStream.cs
- MetadataSource.cs
- ToolStripPanelSelectionBehavior.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- ColumnHeader.cs
- NotifyParentPropertyAttribute.cs
- UrlAuthorizationModule.cs
- DesignerSerializationOptionsAttribute.cs
- BmpBitmapDecoder.cs
- OleDbReferenceCollection.cs
- RelationshipManager.cs
- StatusBarDrawItemEvent.cs
- EventLog.cs
- InplaceBitmapMetadataWriter.cs
- ExtenderControl.cs
- DesignBindingPicker.cs
- PrtCap_Reader.cs
- FileDialogPermission.cs
- Compiler.cs
- EntityUtil.cs
- TextBox.cs
- DataGridLinkButton.cs
- HttpRequestCacheValidator.cs
- PagedDataSource.cs
- FocusWithinProperty.cs
- QueryAsyncResult.cs
- ScriptRegistrationManager.cs
- OutgoingWebRequestContext.cs
- StringToken.cs
- MetadataElement.cs
- ISAPIRuntime.cs
- TdsParameterSetter.cs
- IssuedTokenParametersEndpointAddressElement.cs
- RadialGradientBrush.cs
- ServicePointManager.cs
- JournalEntryListConverter.cs
- MarkupCompilePass1.cs
- HttpCookieCollection.cs
- InfoCardUIAgent.cs
- ColorConvertedBitmap.cs
- SecurityKeyIdentifierClause.cs
- DataTransferEventArgs.cs
- ParallelQuery.cs
- SqlDataReaderSmi.cs
- IBuiltInEvidence.cs
- DescendantOverDescendantQuery.cs
- PrintSystemException.cs
- EpmContentSerializerBase.cs
- httpserverutility.cs
- HandlerBase.cs
- DrawingVisualDrawingContext.cs
- ConfigurationException.cs
- BinaryConverter.cs
- DatePickerTextBox.cs
- Int16Animation.cs
- DbLambda.cs
- PeerPresenceInfo.cs
- ArrangedElement.cs
- BrowserCapabilitiesFactory35.cs
- PtsHelper.cs
- XPathScanner.cs
- ISAPIRuntime.cs
- Bind.cs
- CalloutQueueItem.cs
- ObjectItemNoOpAssemblyLoader.cs
- DataRowComparer.cs
- Style.cs
- METAHEADER.cs
- GraphicsContainer.cs
- CustomLineCap.cs
- DecimalStorage.cs
- ColumnMapTranslator.cs
- FileInfo.cs
- QuaternionKeyFrameCollection.cs
- CreateUserWizard.cs
- DefaultParameterValueAttribute.cs
- StickyNoteContentControl.cs
- EntityKey.cs
- HostingMessageProperty.cs
- CustomPopupPlacement.cs
- TcpTransportBindingElement.cs
- ServiceOperationParameter.cs
- IdlingCommunicationPool.cs
- ReaderOutput.cs
- _AcceptOverlappedAsyncResult.cs
- Polygon.cs
- AncestorChangedEventArgs.cs
- MULTI_QI.cs
- GridSplitter.cs
- ExpressionLink.cs
- MgmtConfigurationRecord.cs
- DocumentsTrace.cs
- InputLanguageManager.cs
- QueryStatement.cs
- _Semaphore.cs
- UnaryNode.cs
- DataSourceExpression.cs
- ServerValidateEventArgs.cs
- ADMembershipProvider.cs
- X509Utils.cs