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
- panel.cs
- XmlSchemaProviderAttribute.cs
- ExpressionStringBuilder.cs
- DocumentViewerBase.cs
- RuntimeHelpers.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- AsymmetricSecurityBindingElement.cs
- QilXmlWriter.cs
- WriterOutput.cs
- ResourceContainer.cs
- MsmqReceiveParameters.cs
- ContentPlaceHolder.cs
- OleDbTransaction.cs
- ProfilePropertyMetadata.cs
- AuthorizationRuleCollection.cs
- TypeHelper.cs
- ServerIdentity.cs
- EdgeModeValidation.cs
- RelationshipNavigation.cs
- CircleHotSpot.cs
- SymbolPair.cs
- SpellerHighlightLayer.cs
- Operators.cs
- LinkLabelLinkClickedEvent.cs
- MetadataConversionError.cs
- CheckStoreFileValidityRequest.cs
- DataGridViewRowsAddedEventArgs.cs
- PeerTransportSecuritySettings.cs
- IPAddress.cs
- CacheMemory.cs
- MarkupCompilePass1.cs
- RadioButton.cs
- XmlUtilWriter.cs
- exports.cs
- UidManager.cs
- SqlBuilder.cs
- Int16Storage.cs
- SoapUnknownHeader.cs
- OneToOneMappingSerializer.cs
- Codec.cs
- ZoneIdentityPermission.cs
- TimerElapsedEvenArgs.cs
- AvTrace.cs
- LinkLabelLinkClickedEvent.cs
- DataGridTextBox.cs
- ColorConvertedBitmap.cs
- FormsAuthenticationTicket.cs
- SqlDataSourceView.cs
- ValidationErrorCollection.cs
- ShapingEngine.cs
- RightsManagementEncryptedStream.cs
- EncoderNLS.cs
- VideoDrawing.cs
- AdornerDecorator.cs
- ConstructorNeedsTagAttribute.cs
- SerialPort.cs
- LocalizedNameDescriptionPair.cs
- BaseCodeDomTreeGenerator.cs
- CommandManager.cs
- PartitionerStatic.cs
- Journal.cs
- AnonymousIdentificationSection.cs
- TaiwanCalendar.cs
- GridViewRow.cs
- ToolStripItemGlyph.cs
- XmlNullResolver.cs
- LocationSectionRecord.cs
- ToolStripSplitButton.cs
- _IPv6Address.cs
- webeventbuffer.cs
- WebPartAddingEventArgs.cs
- BindingBase.cs
- DeferredTextReference.cs
- RenderingBiasValidation.cs
- DataGridCaption.cs
- RuntimeHandles.cs
- PlainXmlWriter.cs
- LineServicesCallbacks.cs
- ContentWrapperAttribute.cs
- XmlStreamStore.cs
- BufferedStream.cs
- XmlNamespaceDeclarationsAttribute.cs
- UpdateRecord.cs
- UnSafeCharBuffer.cs
- InputLanguageCollection.cs
- LoggedException.cs
- ThemeDictionaryExtension.cs
- RequestDescription.cs
- Win32KeyboardDevice.cs
- CheckBoxAutomationPeer.cs
- CodeBlockBuilder.cs
- XmlSchemaAttributeGroup.cs
- ListSortDescriptionCollection.cs
- SessionStateSection.cs
- WeakReadOnlyCollection.cs
- controlskin.cs
- TraceUtility.cs
- CompositeFontParser.cs
- BufferedMessageWriter.cs
- SmtpDateTime.cs