Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / RequestCachePolicyConverter.cs / 1305600 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StateMachineWorkflowInstance.cs
- FormsAuthenticationConfiguration.cs
- UseManagedPresentationElement.cs
- SetIndexBinder.cs
- SqlCaseSimplifier.cs
- SchemaElementDecl.cs
- TreeWalkHelper.cs
- DataListItemEventArgs.cs
- ThicknessKeyFrameCollection.cs
- TextEndOfParagraph.cs
- SafeFindHandle.cs
- BuildProvider.cs
- ProtocolProfile.cs
- XmlElementAttributes.cs
- FloaterParagraph.cs
- Rijndael.cs
- AttachInfo.cs
- AutomationIdentifierGuids.cs
- DocComment.cs
- InputLangChangeEvent.cs
- StrongName.cs
- ManipulationBoundaryFeedbackEventArgs.cs
- CatalogPart.cs
- DataGridParentRows.cs
- Part.cs
- MinimizableAttributeTypeConverter.cs
- MergeFilterQuery.cs
- ArithmeticException.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- ManagementObjectCollection.cs
- ModelVisual3D.cs
- HttpResponseInternalWrapper.cs
- IconEditor.cs
- DataGridViewColumnCollectionEditor.cs
- TextChange.cs
- SessionChannels.cs
- ReflectTypeDescriptionProvider.cs
- EdmScalarPropertyAttribute.cs
- BinaryParser.cs
- HtmlInputButton.cs
- OrderByBuilder.cs
- SafeSystemMetrics.cs
- StringValidator.cs
- SerialErrors.cs
- Control.cs
- OutgoingWebRequestContext.cs
- CrossContextChannel.cs
- Application.cs
- XmlStreamNodeWriter.cs
- DataGridViewRowStateChangedEventArgs.cs
- Visual3DCollection.cs
- DropDownList.cs
- DbTransaction.cs
- ProcessInfo.cs
- ZipArchive.cs
- RemotingConfiguration.cs
- SchemaHelper.cs
- SystemIPv4InterfaceProperties.cs
- MethodAccessException.cs
- MethodAccessException.cs
- dataprotectionpermissionattribute.cs
- MasterPageBuildProvider.cs
- ViewStateModeByIdAttribute.cs
- RowCache.cs
- ProviderConnectionPoint.cs
- DependencyObject.cs
- PipeStream.cs
- DeviceContexts.cs
- WindowsProgressbar.cs
- DataKeyPropertyAttribute.cs
- EventLogEntry.cs
- NameValueSectionHandler.cs
- ImageFormatConverter.cs
- ImageBrush.cs
- GridViewEditEventArgs.cs
- WindowsGraphics2.cs
- Material.cs
- TypeElementCollection.cs
- GridItemCollection.cs
- KeyPullup.cs
- MexHttpsBindingCollectionElement.cs
- DataServiceException.cs
- Globals.cs
- HtmlLink.cs
- LicenseContext.cs
- RootBrowserWindowAutomationPeer.cs
- XmlDomTextWriter.cs
- CookieHandler.cs
- InternalConfigConfigurationFactory.cs
- TagMapInfo.cs
- Speller.cs
- CustomCategoryAttribute.cs
- FunctionQuery.cs
- RequiredFieldValidator.cs
- SqlDataSourceEnumerator.cs
- SqlInternalConnectionSmi.cs
- XXXOnTypeBuilderInstantiation.cs
- ResourcePermissionBaseEntry.cs
- TextTreeRootTextBlock.cs
- DragStartedEventArgs.cs