Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / Configuration / TimeoutValidationAttribute.cs / 1305376 / 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
- ScrollProviderWrapper.cs
- PageFunction.cs
- BuildProvider.cs
- PeerObject.cs
- QuaternionIndependentAnimationStorage.cs
- ProtocolsConfiguration.cs
- XmlSerializerSection.cs
- SslStream.cs
- DataMemberAttribute.cs
- CqlGenerator.cs
- NumericUpDown.cs
- AppDomainProtocolHandler.cs
- TraceData.cs
- StringDictionaryWithComparer.cs
- TemplateFactory.cs
- InternalPermissions.cs
- mactripleDES.cs
- linebase.cs
- BitStack.cs
- XmlNavigatorFilter.cs
- GridViewColumnHeader.cs
- EpmCustomContentSerializer.cs
- DistinctQueryOperator.cs
- ParsedAttributeCollection.cs
- CodeDOMProvider.cs
- BaseValidator.cs
- Models.cs
- BinaryParser.cs
- EditorZone.cs
- ScriptServiceAttribute.cs
- CodeDirectionExpression.cs
- GridViewUpdateEventArgs.cs
- InheritablePropertyChangeInfo.cs
- NameValueFileSectionHandler.cs
- RequestCachePolicy.cs
- CodeRegionDirective.cs
- MonitoringDescriptionAttribute.cs
- PaintValueEventArgs.cs
- PersonalizablePropertyEntry.cs
- Dynamic.cs
- TrackingDataItem.cs
- Style.cs
- X509Utils.cs
- ItemContainerGenerator.cs
- ReadOnlyTernaryTree.cs
- TraceContext.cs
- CompositeFontInfo.cs
- ConditionalDesigner.cs
- SqlNotificationRequest.cs
- TargetPerspective.cs
- ByteAnimationBase.cs
- Process.cs
- XmlWrappingReader.cs
- IChannel.cs
- CodeSnippetCompileUnit.cs
- RealProxy.cs
- ConnectionManagementElementCollection.cs
- AncillaryOps.cs
- ToolStripItemCollection.cs
- PenCursorManager.cs
- WmiEventSink.cs
- UrlMappingsModule.cs
- RewritingProcessor.cs
- WebPartDisplayModeCancelEventArgs.cs
- GradientSpreadMethodValidation.cs
- ISO2022Encoding.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- SecUtil.cs
- FormatConvertedBitmap.cs
- WmfPlaceableFileHeader.cs
- QuotedPrintableStream.cs
- KeyBinding.cs
- TemplateComponentConnector.cs
- UnsafeNativeMethods.cs
- ListBoxChrome.cs
- QueryReaderSettings.cs
- SQLDateTime.cs
- InheritanceContextHelper.cs
- AssemblyCache.cs
- ExecutionScope.cs
- DataGridBoolColumn.cs
- DropShadowBitmapEffect.cs
- MaterialGroup.cs
- FontStretchConverter.cs
- DocumentXPathNavigator.cs
- WebPartConnectionsConfigureVerb.cs
- MethodCallExpression.cs
- SystemWebCachingSectionGroup.cs
- LockedAssemblyCache.cs
- StringAnimationUsingKeyFrames.cs
- CodeDomSerializationProvider.cs
- EncodingTable.cs
- ControlPaint.cs
- FileSystemInfo.cs
- ConnectionAcceptor.cs
- Point3DCollectionValueSerializer.cs
- SqlParameter.cs
- DataObjectAttribute.cs
- StaticFileHandler.cs
- SQLMoneyStorage.cs