Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Net / System / Net / Configuration / TimeoutValidationAttribute.cs / 1 / TimeoutValidationAttribute.cs
namespace System.Net {
using System;
using System.Configuration;
using System.ComponentModel;
// NOTE [[....]]: The old validation attribute was removed from System.ll and is
// replaced by more flexible and robust validation/conversion design.
// The change bellow is a simple fix to make things work with the least possible change ( it is an integration break )
// However, we already have a built-in support for configuration properties that store
// Type names. We do reccomend that all uses of the validator bellow are converted to
// properties of type Type ( instead of string ) which use the TypeNameConverter from System.Configuration.dll
// Feel free to ask me for more details if you decide to do the conversion
internal sealed class TimeoutValidator : ConfigurationValidatorBase
{
bool _zeroValid = false;
internal TimeoutValidator(bool zeroValid) {
_zeroValid = zeroValid;
}
public override bool CanValidate( Type type ) {
return ( type == typeof( int ) || type == typeof( long ) );
}
public override void Validate( object value ) {
if (value == null)
return;
int timeout = (int)value;
if (_zeroValid && timeout == 0)
return;
if (timeout <= 0 && timeout != System.Threading.Timeout.Infinite) {
// Note [[....]] : This is a lab integration fix. Old code did not have any error message at this point
// This code change accomplishes the same result. However its highly reccomended that a specific error message is givven
// to the user so they know what exaclty is the problem ( i.e. the value must be a positive integer or be Infinite )
// To accomplish this - an exception with the specific error message could be thrown ( ArgumentException is prefferred )
throw new ConfigurationErrorsException(SR.GetString(SR.net_io_timeout_use_gt_zero));
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
namespace System.Net {
using System;
using System.Configuration;
using System.ComponentModel;
// NOTE [[....]]: The old validation attribute was removed from System.ll and is
// replaced by more flexible and robust validation/conversion design.
// The change bellow is a simple fix to make things work with the least possible change ( it is an integration break )
// However, we already have a built-in support for configuration properties that store
// Type names. We do reccomend that all uses of the validator bellow are converted to
// properties of type Type ( instead of string ) which use the TypeNameConverter from System.Configuration.dll
// Feel free to ask me for more details if you decide to do the conversion
internal sealed class TimeoutValidator : ConfigurationValidatorBase
{
bool _zeroValid = false;
internal TimeoutValidator(bool zeroValid) {
_zeroValid = zeroValid;
}
public override bool CanValidate( Type type ) {
return ( type == typeof( int ) || type == typeof( long ) );
}
public override void Validate( object value ) {
if (value == null)
return;
int timeout = (int)value;
if (_zeroValid && timeout == 0)
return;
if (timeout <= 0 && timeout != System.Threading.Timeout.Infinite) {
// Note [[....]] : This is a lab integration fix. Old code did not have any error message at this point
// This code change accomplishes the same result. However its highly reccomended that a specific error message is givven
// to the user so they know what exaclty is the problem ( i.e. the value must be a positive integer or be Infinite )
// To accomplish this - an exception with the specific error message could be thrown ( ArgumentException is prefferred )
throw new ConfigurationErrorsException(SR.GetString(SR.net_io_timeout_use_gt_zero));
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Thickness.cs
- DesignBinding.cs
- SQLDoubleStorage.cs
- DataMisalignedException.cs
- HMACSHA512.cs
- DependencyObjectCodeDomSerializer.cs
- MenuItemCollectionEditorDialog.cs
- TemplateBuilder.cs
- WpfKnownMember.cs
- ExpressionCopier.cs
- DiagnosticEventProvider.cs
- RangeValidator.cs
- HandleCollector.cs
- CryptoConfig.cs
- ProcessHostServerConfig.cs
- ComPlusDiagnosticTraceRecords.cs
- loginstatus.cs
- BaseParaClient.cs
- TableLayoutPanel.cs
- XomlSerializationHelpers.cs
- MailAddressCollection.cs
- CollectionBuilder.cs
- BrowserDefinition.cs
- GridViewUpdateEventArgs.cs
- ConsumerConnectionPoint.cs
- TableProviderWrapper.cs
- GB18030Encoding.cs
- SHA384Cng.cs
- RefreshEventArgs.cs
- HyperLinkStyle.cs
- FileInfo.cs
- ObjectKeyFrameCollection.cs
- GenericTypeParameterBuilder.cs
- SettingsPropertyIsReadOnlyException.cs
- CollectionType.cs
- BitmapMetadataBlob.cs
- Vector.cs
- ReferencedAssemblyResolver.cs
- FlowDocumentScrollViewer.cs
- Deflater.cs
- WorkflowDebuggerSteppingAttribute.cs
- ObjectStateEntryDbDataRecord.cs
- WsatServiceAddress.cs
- SqlBulkCopyColumnMapping.cs
- SiteOfOriginContainer.cs
- CookieHandler.cs
- WebPartZoneCollection.cs
- RepeaterCommandEventArgs.cs
- MessageQueue.cs
- ExceptQueryOperator.cs
- XmlSchemaExporter.cs
- RoutedEventConverter.cs
- WebHttpBindingElement.cs
- DefaultValidator.cs
- CodeExpressionStatement.cs
- WebControl.cs
- OracleEncoding.cs
- SecurityManager.cs
- RootDesignerSerializerAttribute.cs
- DataSet.cs
- PolyLineSegment.cs
- ParseChildrenAsPropertiesAttribute.cs
- BrowserDefinition.cs
- X509CertificateStore.cs
- DashStyle.cs
- HtmlInputPassword.cs
- TokenBasedSet.cs
- DataList.cs
- HScrollProperties.cs
- LinkAreaEditor.cs
- UserControlAutomationPeer.cs
- JsonDeserializer.cs
- BaseAsyncResult.cs
- SchemaCompiler.cs
- TextDecorations.cs
- TextTreeExtractElementUndoUnit.cs
- KerberosTicketHashIdentifierClause.cs
- WebBaseEventKeyComparer.cs
- DisableDpiAwarenessAttribute.cs
- EntitySetBase.cs
- WebPartCatalogCloseVerb.cs
- CodeTypeOfExpression.cs
- CatalogZoneAutoFormat.cs
- CreateUserWizardStep.cs
- WebHttpBindingCollectionElement.cs
- DictionaryKeyPropertyAttribute.cs
- DataGridViewCellEventArgs.cs
- ConnectionManagementSection.cs
- ServiceEndpointElementCollection.cs
- Evaluator.cs
- CodeDomConfigurationHandler.cs
- BrowsableAttribute.cs
- XsdBuildProvider.cs
- DesignerAttribute.cs
- TimeoutException.cs
- RegexFCD.cs
- XmlStreamStore.cs
- TextAutomationPeer.cs
- ButtonPopupAdapter.cs
- Point4D.cs