Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- DocumentAutomationPeer.cs
- WorkItem.cs
- TextBox.cs
- TextMetrics.cs
- Expression.cs
- RuntimeWrappedException.cs
- SqlDataSource.cs
- OrderedDictionary.cs
- SourceSwitch.cs
- ObsoleteAttribute.cs
- TextTrailingCharacterEllipsis.cs
- DirectionalLight.cs
- DataSourceControlBuilder.cs
- XmlChildEnumerator.cs
- ServiceDeploymentInfo.cs
- SafeCertificateStore.cs
- RawStylusInputCustomData.cs
- InkCanvasFeedbackAdorner.cs
- WindowHideOrCloseTracker.cs
- EditBehavior.cs
- Tracer.cs
- EventWaitHandleSecurity.cs
- DefaultBindingPropertyAttribute.cs
- WebRequest.cs
- AttributeCollection.cs
- WeakHashtable.cs
- basecomparevalidator.cs
- ThemeInfoAttribute.cs
- LinearGradientBrush.cs
- FixedPosition.cs
- XPathMultyIterator.cs
- InkCanvasSelection.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- WebPartManagerInternals.cs
- GrabHandleGlyph.cs
- XPathSelectionIterator.cs
- clipboard.cs
- BamlBinaryWriter.cs
- Highlights.cs
- ApplicationTrust.cs
- ValidatorCompatibilityHelper.cs
- ProfileSettingsCollection.cs
- updateconfighost.cs
- GlyphRunDrawing.cs
- ToolZone.cs
- Cloud.cs
- InkPresenterAutomationPeer.cs
- ViewCellRelation.cs
- QilInvoke.cs
- CompiledQuery.cs
- SubclassTypeValidatorAttribute.cs
- XmlSchemas.cs
- XPathNodeIterator.cs
- ColumnResizeAdorner.cs
- ScalarOps.cs
- XmlSchemaCollection.cs
- TreeBuilderXamlTranslator.cs
- XmlObjectSerializer.cs
- FileCodeGroup.cs
- QilXmlReader.cs
- ValueUnavailableException.cs
- LexicalChunk.cs
- ServiceDescriptionData.cs
- LogRecordSequence.cs
- DataBoundLiteralControl.cs
- HttpProtocolImporter.cs
- AllowedAudienceUriElement.cs
- PartialCachingControl.cs
- DecoderBestFitFallback.cs
- ArithmeticException.cs
- HealthMonitoringSection.cs
- MenuBase.cs
- ErrorFormatterPage.cs
- ResolveCriteria11.cs
- ResolveNameEventArgs.cs
- BlockCollection.cs
- PageSetupDialog.cs
- iisPickupDirectory.cs
- SettingsAttributeDictionary.cs
- Int64AnimationBase.cs
- CheckBox.cs
- BCLDebug.cs
- TextEditorMouse.cs
- CompilerError.cs
- SingleAnimationBase.cs
- ImportCatalogPart.cs
- Schedule.cs
- DbCommandTree.cs
- TextSelectionProcessor.cs
- XmlCodeExporter.cs
- ConfigXmlSignificantWhitespace.cs
- AtlasWeb.Designer.cs
- MessageAction.cs
- PolicyManager.cs
- WorkflowTraceTransfer.cs
- CheckPair.cs
- SecureUICommand.cs
- ExpandButtonVisibilityConverter.cs
- HasRunnableWorkflowEvent.cs
- DesignTimeResourceProviderFactoryAttribute.cs