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
- Metafile.cs
- WithParamAction.cs
- ListSourceHelper.cs
- DrawingAttributesDefaultValueFactory.cs
- mongolianshape.cs
- SystemResourceKey.cs
- TextParagraph.cs
- ComponentChangingEvent.cs
- TableLayoutStyleCollection.cs
- FormViewRow.cs
- CallSiteBinder.cs
- XmlNotation.cs
- XmlAnyElementAttribute.cs
- X509Utils.cs
- AffineTransform3D.cs
- FilterableAttribute.cs
- Image.cs
- ObjectStateEntry.cs
- Baml2006ReaderContext.cs
- CopyOnWriteList.cs
- AdapterDictionary.cs
- MarshalByValueComponent.cs
- VectorConverter.cs
- FilteredSchemaElementLookUpTable.cs
- DataTableNameHandler.cs
- ListControl.cs
- isolationinterop.cs
- basenumberconverter.cs
- XmlSchemaValidator.cs
- Rfc2898DeriveBytes.cs
- VectorCollection.cs
- JapaneseCalendar.cs
- HttpListener.cs
- SchemaMapping.cs
- SchemaAttDef.cs
- SortedDictionary.cs
- LinkButton.cs
- XamlParser.cs
- DateTimeOffsetStorage.cs
- StorageRoot.cs
- StandardBindingElementCollection.cs
- RawMouseInputReport.cs
- OdbcDataAdapter.cs
- MouseGestureConverter.cs
- ApplicationDirectoryMembershipCondition.cs
- FormsAuthenticationModule.cs
- ZipIOExtraFieldZip64Element.cs
- HttpEncoderUtility.cs
- WriteableBitmap.cs
- XmlWellformedWriter.cs
- ApplicationSettingsBase.cs
- WebPartMinimizeVerb.cs
- BamlWriter.cs
- SynchronizedDispatch.cs
- CodeVariableReferenceExpression.cs
- QueryableDataSourceHelper.cs
- ToolStripStatusLabel.cs
- StorageMappingItemCollection.cs
- OleDbErrorCollection.cs
- Int32AnimationBase.cs
- DetailsViewModeEventArgs.cs
- UrlPath.cs
- ProcessHost.cs
- Light.cs
- MD5.cs
- WebHttpDispatchOperationSelector.cs
- RawTextInputReport.cs
- CursorConverter.cs
- NativeObjectSecurity.cs
- HotSpot.cs
- PingReply.cs
- StylusOverProperty.cs
- TextDecorationLocationValidation.cs
- WebBrowserEvent.cs
- BmpBitmapDecoder.cs
- TextRunTypographyProperties.cs
- IPipelineRuntime.cs
- GridViewPageEventArgs.cs
- TagPrefixCollection.cs
- HtmlTitle.cs
- NumberSubstitution.cs
- EventLogEntryCollection.cs
- SchemaImporter.cs
- GridViewUpdateEventArgs.cs
- StrokeCollection.cs
- DataBoundControlHelper.cs
- TemplateXamlParser.cs
- Aggregates.cs
- DataSourceUtil.cs
- Normalizer.cs
- RelatedImageListAttribute.cs
- AsymmetricSignatureFormatter.cs
- _ListenerAsyncResult.cs
- SimpleTypesSurrogate.cs
- PingReply.cs
- Empty.cs
- RecordsAffectedEventArgs.cs
- TableLayoutPanelDesigner.cs
- SolidColorBrush.cs
- XsdBuildProvider.cs