Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Core / CSharp / System / Windows / Media / RequestCachePolicyConverter.cs / 1 / RequestCachePolicyConverter.cs
//------------------------------------------------------------------------------
// Microsoft Avalon
// Copyright (c) Microsoft Corporation, 2007
//
// File: RequesetCachePolicyConverter.cs
//-----------------------------------------------------------------------------
using System;
using System.IO;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Reflection;
using MS.Internal;
using System.Windows.Media;
using System.Text;
using System.Collections;
using System.Globalization;
using System.Runtime.InteropServices;
using System.Security;
using System.Net.Cache;
using SR=MS.Internal.PresentationCore.SR;
using SRID=MS.Internal.PresentationCore.SRID;
namespace System.Windows.Media
{
///
/// RequestCachePolicyConverter Parses a RequestCachePolicy.
///
public sealed class RequestCachePolicyConverter : TypeConverter
{
///
/// CanConvertFrom
///
public override bool CanConvertFrom(ITypeDescriptorContext td, Type t)
{
if (t == typeof(string))
{
return true;
}
else
{
return false;
}
}
///
/// CanConvertTo - Returns whether or not this class can convert to a given type.
///
///
/// bool - True if this converter can convert to the provided type, false if not.
///
/// The ITypeDescriptorContext for this call.
/// The Type being queried for support.
public override bool CanConvertTo(ITypeDescriptorContext typeDescriptorContext, Type destinationType)
{
// We can convert to an InstanceDescriptor or to a string.
if (destinationType == typeof(InstanceDescriptor) ||
destinationType == typeof(string))
{
return true;
}
else
{
return false;
}
}
///
/// ConvertFrom - attempt to convert to a RequestCachePolicy from the given object
///
///
/// A NotSupportedException is thrown if the example object is null or is not a valid type
/// which can be converted to a RequestCachePolicy.
///
public override object ConvertFrom(ITypeDescriptorContext td, System.Globalization.CultureInfo ci, object value)
{
if (null == value)
{
throw GetConvertFromException(value);
}
string s = value as string;
if (null == s)
{
throw new ArgumentException(SR.Get(SRID.General_BadType, "ConvertFrom"), "value");
}
HttpRequestCacheLevel level = (HttpRequestCacheLevel)Enum.Parse(typeof(HttpRequestCacheLevel), s, true);
return new HttpRequestCachePolicy(level);
}
///
/// ConvertTo - Attempt to convert to the given type
///
///
/// The object which was constructed.
///
///
/// An ArgumentNullException is thrown if the example object is null.
///
///
/// An ArgumentException is thrown if the object is not null,
/// or if the destinationType isn't one of the valid destination types.
///
/// The ITypeDescriptorContext for this call.
/// The CultureInfo which is respected when converting.
/// The policy to convert.
/// The type to which to convert the policy.
///
/// Critical: calls InstanceDescriptor ctor which LinkDemands
/// PublicOK: can only make an InstanceDescriptor for RequestCachePolicy/HttpRequestCachePolicy, not an arbitrary class
///
[SecurityCritical]
public override object ConvertTo(ITypeDescriptorContext typeDescriptorContext,
CultureInfo cultureInfo,
object value,
Type destinationType)
{
if (destinationType == null)
{
throw new ArgumentNullException("destinationType");
}
HttpRequestCachePolicy httpPolicy = value as HttpRequestCachePolicy;
if(httpPolicy != null)
{
if (destinationType == typeof(string))
{
return httpPolicy.Level.ToString();
}
else if (destinationType == typeof(InstanceDescriptor))
{
ConstructorInfo ci = typeof(HttpRequestCachePolicy).GetConstructor(new Type[] { typeof(HttpRequestCachePolicy) });
return new InstanceDescriptor(ci, new object[] { httpPolicy.Level });
}
}
//if it's not an HttpRequestCachePolicy, try a regular RequestCachePolicy
RequestCachePolicy policy = value as RequestCachePolicy;
if (policy != null)
{
if (destinationType == typeof(string))
{
return policy.Level.ToString();
}
else if (destinationType == typeof(InstanceDescriptor))
{
ConstructorInfo ci = typeof(RequestCachePolicy).GetConstructor(new Type[] { typeof(RequestCachePolicy) });
return new InstanceDescriptor(ci, new object[] { policy.Level });
}
}
throw GetConvertToException(value, destinationType);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
// Microsoft Avalon
// Copyright (c) Microsoft Corporation, 2007
//
// File: RequesetCachePolicyConverter.cs
//-----------------------------------------------------------------------------
using System;
using System.IO;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Reflection;
using MS.Internal;
using System.Windows.Media;
using System.Text;
using System.Collections;
using System.Globalization;
using System.Runtime.InteropServices;
using System.Security;
using System.Net.Cache;
using SR=MS.Internal.PresentationCore.SR;
using SRID=MS.Internal.PresentationCore.SRID;
namespace System.Windows.Media
{
///
/// RequestCachePolicyConverter Parses a RequestCachePolicy.
///
public sealed class RequestCachePolicyConverter : TypeConverter
{
///
/// CanConvertFrom
///
public override bool CanConvertFrom(ITypeDescriptorContext td, Type t)
{
if (t == typeof(string))
{
return true;
}
else
{
return false;
}
}
///
/// CanConvertTo - Returns whether or not this class can convert to a given type.
///
///
/// bool - True if this converter can convert to the provided type, false if not.
///
/// The ITypeDescriptorContext for this call.
/// The Type being queried for support.
public override bool CanConvertTo(ITypeDescriptorContext typeDescriptorContext, Type destinationType)
{
// We can convert to an InstanceDescriptor or to a string.
if (destinationType == typeof(InstanceDescriptor) ||
destinationType == typeof(string))
{
return true;
}
else
{
return false;
}
}
///
/// ConvertFrom - attempt to convert to a RequestCachePolicy from the given object
///
///
/// A NotSupportedException is thrown if the example object is null or is not a valid type
/// which can be converted to a RequestCachePolicy.
///
public override object ConvertFrom(ITypeDescriptorContext td, System.Globalization.CultureInfo ci, object value)
{
if (null == value)
{
throw GetConvertFromException(value);
}
string s = value as string;
if (null == s)
{
throw new ArgumentException(SR.Get(SRID.General_BadType, "ConvertFrom"), "value");
}
HttpRequestCacheLevel level = (HttpRequestCacheLevel)Enum.Parse(typeof(HttpRequestCacheLevel), s, true);
return new HttpRequestCachePolicy(level);
}
///
/// ConvertTo - Attempt to convert to the given type
///
///
/// The object which was constructed.
///
///
/// An ArgumentNullException is thrown if the example object is null.
///
///
/// An ArgumentException is thrown if the object is not null,
/// or if the destinationType isn't one of the valid destination types.
///
/// The ITypeDescriptorContext for this call.
/// The CultureInfo which is respected when converting.
/// The policy to convert.
/// The type to which to convert the policy.
///
/// Critical: calls InstanceDescriptor ctor which LinkDemands
/// PublicOK: can only make an InstanceDescriptor for RequestCachePolicy/HttpRequestCachePolicy, not an arbitrary class
///
[SecurityCritical]
public override object ConvertTo(ITypeDescriptorContext typeDescriptorContext,
CultureInfo cultureInfo,
object value,
Type destinationType)
{
if (destinationType == null)
{
throw new ArgumentNullException("destinationType");
}
HttpRequestCachePolicy httpPolicy = value as HttpRequestCachePolicy;
if(httpPolicy != null)
{
if (destinationType == typeof(string))
{
return httpPolicy.Level.ToString();
}
else if (destinationType == typeof(InstanceDescriptor))
{
ConstructorInfo ci = typeof(HttpRequestCachePolicy).GetConstructor(new Type[] { typeof(HttpRequestCachePolicy) });
return new InstanceDescriptor(ci, new object[] { httpPolicy.Level });
}
}
//if it's not an HttpRequestCachePolicy, try a regular RequestCachePolicy
RequestCachePolicy policy = value as RequestCachePolicy;
if (policy != null)
{
if (destinationType == typeof(string))
{
return policy.Level.ToString();
}
else if (destinationType == typeof(InstanceDescriptor))
{
ConstructorInfo ci = typeof(RequestCachePolicy).GetConstructor(new Type[] { typeof(RequestCachePolicy) });
return new InstanceDescriptor(ci, new object[] { policy.Level });
}
}
throw GetConvertToException(value, destinationType);
}
}
}
// 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
- TypedElement.cs
- Monitor.cs
- AnyReturnReader.cs
- XmlSchemas.cs
- LayoutSettings.cs
- DataObjectEventArgs.cs
- EntityConnectionStringBuilder.cs
- XmlTextWriter.cs
- XPathItem.cs
- CodeMethodInvokeExpression.cs
- IUnknownConstantAttribute.cs
- TypeSource.cs
- UserControl.cs
- _SafeNetHandles.cs
- HitTestParameters3D.cs
- TrackingLocationCollection.cs
- StylusButtonCollection.cs
- HtmlWindow.cs
- XmlAttributeAttribute.cs
- CompositeScriptReferenceEventArgs.cs
- XmlConvert.cs
- ScriptRegistrationManager.cs
- ListControl.cs
- XmlUtilWriter.cs
- DPCustomTypeDescriptor.cs
- GroupDescription.cs
- HttpConfigurationContext.cs
- ObjectListCommand.cs
- StringInfo.cs
- ButtonBaseAdapter.cs
- FileDialogCustomPlacesCollection.cs
- Matrix3DValueSerializer.cs
- XmlSchemaObject.cs
- ProcessThreadCollection.cs
- DataViewSetting.cs
- ProviderSettings.cs
- ScriptManagerProxy.cs
- TagPrefixAttribute.cs
- LinqDataSourceContextEventArgs.cs
- DataListItemCollection.cs
- HijriCalendar.cs
- PeerCollaboration.cs
- MenuCommand.cs
- ErrorWrapper.cs
- AtomContentProperty.cs
- EmissiveMaterial.cs
- DoubleAnimationUsingPath.cs
- DefaultBinder.cs
- SafeWaitHandle.cs
- CopyCodeAction.cs
- XmlSchemaInclude.cs
- CookieParameter.cs
- SqlUtil.cs
- LinqDataSourceDisposeEventArgs.cs
- EntityViewGenerator.cs
- IndexedString.cs
- WebPartEditVerb.cs
- SamlSubjectStatement.cs
- BindingExpression.cs
- RefreshPropertiesAttribute.cs
- QueryException.cs
- QilList.cs
- ImageListUtils.cs
- FocusWithinProperty.cs
- EdmMember.cs
- TransportListener.cs
- HttpConfigurationContext.cs
- NavigatorInvalidBodyAccessException.cs
- Automation.cs
- SqlTransaction.cs
- TypeRefElement.cs
- RenderOptions.cs
- DataServiceContext.cs
- DesignerWithHeader.cs
- WebBrowserBase.cs
- MarkupExtensionParser.cs
- ToolboxItem.cs
- ChangeNode.cs
- ClientSettingsSection.cs
- IteratorDescriptor.cs
- HtmlControlPersistable.cs
- MissingMemberException.cs
- Rotation3DAnimationUsingKeyFrames.cs
- FontDriver.cs
- AutoGeneratedField.cs
- XsdCachingReader.cs
- EntityConnection.cs
- MarginCollapsingState.cs
- _RequestCacheProtocol.cs
- XmlSchemaSubstitutionGroup.cs
- ProfileGroupSettings.cs
- ScrollBar.cs
- HealthMonitoringSection.cs
- DBAsyncResult.cs
- SemaphoreSecurity.cs
- DataTableCollection.cs
- RemoteEndpointMessageProperty.cs
- PathFigureCollectionValueSerializer.cs
- SoapParser.cs
- Metafile.cs