Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- XamlNamespaceHelper.cs
- TypeToken.cs
- LocalizableResourceBuilder.cs
- translator.cs
- VerticalAlignConverter.cs
- WriterOutput.cs
- SQLDecimal.cs
- ClockController.cs
- BitmapEffectCollection.cs
- UIAgentMonitorHandle.cs
- DataGridViewLayoutData.cs
- DeviceContexts.cs
- RadioButton.cs
- ObfuscateAssemblyAttribute.cs
- ListQueryResults.cs
- AuthenticodeSignatureInformation.cs
- PriorityChain.cs
- CounterCreationDataConverter.cs
- _HeaderInfo.cs
- ImageCreator.cs
- _RequestLifetimeSetter.cs
- ScrollData.cs
- GroupItem.cs
- AttributeCollection.cs
- FileResponseElement.cs
- InfoCardTraceRecord.cs
- PageTextBox.cs
- FileSystemWatcher.cs
- JavaScriptObjectDeserializer.cs
- HtmlTableRowCollection.cs
- AuthenticationSection.cs
- Random.cs
- BindingObserver.cs
- DataSourceCollectionBase.cs
- cryptoapiTransform.cs
- ToolStripPanelRow.cs
- BamlLocalizabilityResolver.cs
- ControlPaint.cs
- EncryptedType.cs
- TargetControlTypeCache.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- LayoutSettings.cs
- Stylus.cs
- SqlDataReader.cs
- OdbcUtils.cs
- base64Transforms.cs
- DbConnectionPoolGroup.cs
- WindowManager.cs
- NumberAction.cs
- NativeObjectSecurity.cs
- Literal.cs
- StorageConditionPropertyMapping.cs
- IIS7WorkerRequest.cs
- XmlWellformedWriter.cs
- PropertySet.cs
- ellipse.cs
- EntityStoreSchemaFilterEntry.cs
- XmlTypeAttribute.cs
- ISO2022Encoding.cs
- Int64Storage.cs
- Activator.cs
- GCHandleCookieTable.cs
- TextDecoration.cs
- PerformanceCounterScope.cs
- AppDomainProtocolHandler.cs
- AssertFilter.cs
- UserValidatedEventArgs.cs
- mansign.cs
- ErrorTableItemStyle.cs
- SizeAnimationBase.cs
- UIHelper.cs
- WinFormsComponentEditor.cs
- Hash.cs
- ReadOnlyDataSourceView.cs
- DataSourceXmlSerializationAttribute.cs
- ExcCanonicalXml.cs
- XmlText.cs
- XmlQueryContext.cs
- CheckBoxField.cs
- RegisteredDisposeScript.cs
- DoubleLinkList.cs
- RelationalExpressions.cs
- IntSecurity.cs
- TypeConverter.cs
- InvalidPrinterException.cs
- TypedTableBase.cs
- SelectedDatesCollection.cs
- RoleManagerEventArgs.cs
- ComplexTypeEmitter.cs
- PersonalizationProvider.cs
- EditingContext.cs
- AppDomainUnloadedException.cs
- TransactionManager.cs
- DllNotFoundException.cs
- GeometryHitTestParameters.cs
- Select.cs
- CodeAttributeDeclaration.cs
- VirtualDirectoryMappingCollection.cs
- PasswordTextContainer.cs
- Int64AnimationBase.cs