Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / DataSourceCacheDurationConverter.cs / 1305376 / DataSourceCacheDurationConverter.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI {
using System;
using System.Collections;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Globalization;
using System.Reflection;
using System.Security.Permissions;
using System.Web.Util;
///
/// Converts a cache duration such as an integer or the text "Infinite" to a cache duration, where "Infinite" implies zero (0).
///
public class DataSourceCacheDurationConverter : Int32Converter {
private StandardValuesCollection _values;
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) {
if (sourceType == typeof(string)) {
return true;
}
else {
return base.CanConvertFrom(context, sourceType);
}
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) {
if (value == null)
return null;
string stringValue = value as string;
if (stringValue != null) {
string textValue = stringValue.Trim();
if (textValue.Length == 0) {
return 0;
}
if (String.Equals(textValue, "infinite", StringComparison.OrdinalIgnoreCase)) {
return 0;
}
}
return base.ConvertFrom(context, culture, value);
}
public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) {
if (destinationType == typeof(string)) {
return true;
}
else {
return base.CanConvertTo(context, destinationType);
}
}
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) {
if ((value != null) && (destinationType == typeof(string)) && ((int)value == 0)) {
return "Infinite";
}
else {
return base.ConvertTo(context, culture, value, destinationType);
}
}
public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) {
if (_values == null) {
object[] values = new object[] { 0 };
_values = new StandardValuesCollection(values);
}
return _values;
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) {
return false;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context) {
return true;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CodeGeneratorOptions.cs
- ChtmlMobileTextWriter.cs
- Positioning.cs
- DocumentAutomationPeer.cs
- Win32KeyboardDevice.cs
- UnsafeNativeMethodsCLR.cs
- BitmapEffectInput.cs
- FixedPageAutomationPeer.cs
- IdentitySection.cs
- PassportIdentity.cs
- DateTimeSerializationSection.cs
- JpegBitmapEncoder.cs
- TextTreeTextBlock.cs
- TemplateLookupAction.cs
- InputLanguageCollection.cs
- Automation.cs
- MbpInfo.cs
- BitmapScalingModeValidation.cs
- PropertyEmitter.cs
- PcmConverter.cs
- DataGridCell.cs
- TypeDescriptionProviderAttribute.cs
- ProxyHelper.cs
- Converter.cs
- CodeTypeDeclarationCollection.cs
- FacetDescriptionElement.cs
- UserControlParser.cs
- ObjectQueryState.cs
- Line.cs
- DateTimeConstantAttribute.cs
- MarkupExtensionReturnTypeAttribute.cs
- Renderer.cs
- NamespaceCollection.cs
- ConnectionManager.cs
- ALinqExpressionVisitor.cs
- XmlEnumAttribute.cs
- AnchoredBlock.cs
- NativeMethodsCLR.cs
- HitTestParameters.cs
- AttributeParameterInfo.cs
- TreeNode.cs
- Crypto.cs
- SizeValueSerializer.cs
- KeyValueConfigurationCollection.cs
- DiagnosticTrace.cs
- FunctionImportMapping.cs
- SqlBulkCopyColumnMapping.cs
- CompilerGlobalScopeAttribute.cs
- PerformanceCounterCategory.cs
- SemanticResultKey.cs
- MaterializeFromAtom.cs
- BamlRecordReader.cs
- EncoderParameters.cs
- ControlEvent.cs
- SiteMapDataSourceView.cs
- ConnectionInterfaceCollection.cs
- IODescriptionAttribute.cs
- DockProviderWrapper.cs
- MiniMapControl.xaml.cs
- AutomationPeer.cs
- StateDesigner.cs
- arabicshape.cs
- ResourcePart.cs
- NamedPermissionSet.cs
- SafeBitVector32.cs
- XamlSerializerUtil.cs
- CryptoKeySecurity.cs
- DictationGrammar.cs
- Asn1IntegerConverter.cs
- PropertyConverter.cs
- GeneralTransform2DTo3DTo2D.cs
- ToolStripPanelRow.cs
- SystemParameters.cs
- HMACSHA512.cs
- PeerResolverMode.cs
- LambdaReference.cs
- ProxyManager.cs
- SecurityElement.cs
- _UriTypeConverter.cs
- _PooledStream.cs
- UInt64.cs
- ApplicationProxyInternal.cs
- oledbmetadatacollectionnames.cs
- HandledMouseEvent.cs
- DebugController.cs
- HttpCapabilitiesBase.cs
- SpecularMaterial.cs
- RenderCapability.cs
- DefaultParameterValueAttribute.cs
- FileEnumerator.cs
- NamedPipeChannelListener.cs
- SqlRowUpdatingEvent.cs
- XmlCompatibilityReader.cs
- InvokeHandlers.cs
- DataBindingCollection.cs
- StandardCommands.cs
- NativeMethods.cs
- QueryResponse.cs
- XmlQueryTypeFactory.cs
- PtsCache.cs