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
- DirectoryObjectSecurity.cs
- PlatformCulture.cs
- PropertyAccessVisitor.cs
- ByteStream.cs
- SafeArrayRankMismatchException.cs
- SyntaxCheck.cs
- JapaneseCalendar.cs
- XmlAttribute.cs
- XPathConvert.cs
- BlurBitmapEffect.cs
- HttpServerUtilityBase.cs
- LabelLiteral.cs
- CompiledQuery.cs
- PersonalizableAttribute.cs
- FunctionNode.cs
- Point3DAnimationBase.cs
- TrackingValidationObjectDictionary.cs
- OrderedDictionaryStateHelper.cs
- ISSmlParser.cs
- StringConverter.cs
- metadatamappinghashervisitor.cs
- ImagingCache.cs
- RuntimeHandles.cs
- ScriptReference.cs
- DynamicMethod.cs
- DbProviderConfigurationHandler.cs
- BooleanFunctions.cs
- ImageSource.cs
- _ShellExpression.cs
- EventPrivateKey.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- ModulesEntry.cs
- ErrorFormatterPage.cs
- ObjectQuery_EntitySqlExtensions.cs
- PopOutPanel.cs
- QueryOperationResponseOfT.cs
- WebPartConnectionsCloseVerb.cs
- HandlerMappingMemo.cs
- ToolBarOverflowPanel.cs
- DesignerDataParameter.cs
- QilCloneVisitor.cs
- DSACryptoServiceProvider.cs
- XmlWrappingReader.cs
- SchemaTableOptionalColumn.cs
- StringHandle.cs
- BindToObject.cs
- RemotingServices.cs
- HttpDictionary.cs
- CryptoStream.cs
- VersionPair.cs
- SafePointer.cs
- BidPrivateBase.cs
- MatchingStyle.cs
- ControlDesignerState.cs
- XPathSelectionIterator.cs
- XmlUtil.cs
- Lasso.cs
- versioninfo.cs
- _HTTPDateParse.cs
- WebPartVerbCollection.cs
- TypePresenter.xaml.cs
- RequestContext.cs
- ISAPIRuntime.cs
- CollectionEditVerbManager.cs
- RawStylusSystemGestureInputReport.cs
- DetailsViewPagerRow.cs
- AdapterUtil.cs
- MarginCollapsingState.cs
- DataGridTextBox.cs
- EventLogPermission.cs
- OutputCacheModule.cs
- ACL.cs
- ActivityMarkupSerializationProvider.cs
- QueryParameter.cs
- CookieHandler.cs
- CodePropertyReferenceExpression.cs
- SymbolTable.cs
- ClassHandlersStore.cs
- DataGridViewColumnCollectionDialog.cs
- DispatcherFrame.cs
- DispatcherProcessingDisabled.cs
- HiddenField.cs
- ViewGenResults.cs
- BigInt.cs
- SchemaCreator.cs
- NativeRecognizer.cs
- MimeTypeMapper.cs
- CapabilitiesUse.cs
- ReceiveCompletedEventArgs.cs
- DateTimeValueSerializerContext.cs
- SchemaElement.cs
- WebPartEditVerb.cs
- PeerCredentialElement.cs
- LeaseManager.cs
- LinkTarget.cs
- EdmItemCollection.cs
- IIS7WorkerRequest.cs
- MtomMessageEncodingElement.cs
- DataGridToolTip.cs
- DesignerView.cs