Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ConfigurationLocationCollection.cs
- HwndSourceParameters.cs
- TransactionManager.cs
- ResourcePool.cs
- TraceLog.cs
- EntityStoreSchemaGenerator.cs
- ComponentDispatcherThread.cs
- XmlStreamStore.cs
- SendMessageContent.cs
- MissingSatelliteAssemblyException.cs
- FlowDocument.cs
- Line.cs
- SQLBinary.cs
- CheckoutException.cs
- GridItem.cs
- Menu.cs
- Enlistment.cs
- QueryExtender.cs
- SpeechAudioFormatInfo.cs
- StrokeIntersection.cs
- RectKeyFrameCollection.cs
- ProtocolState.cs
- KeyedHashAlgorithm.cs
- AudioFormatConverter.cs
- ServiceObjectContainer.cs
- ToolStripItemClickedEventArgs.cs
- regiisutil.cs
- AggregationMinMaxHelpers.cs
- LineProperties.cs
- TextContainer.cs
- MatcherBuilder.cs
- DataControlPagerLinkButton.cs
- PageCodeDomTreeGenerator.cs
- GradientSpreadMethodValidation.cs
- SemanticAnalyzer.cs
- NamedPermissionSet.cs
- MenuItemBindingCollection.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- PointValueSerializer.cs
- X509ChainElement.cs
- FormsAuthenticationCredentials.cs
- Point3DAnimationUsingKeyFrames.cs
- ComponentResourceKey.cs
- InheritedPropertyChangedEventArgs.cs
- BindingCollection.cs
- XamlPoint3DCollectionSerializer.cs
- ProcessHostConfigUtils.cs
- CertificateManager.cs
- Region.cs
- Application.cs
- DataGridRelationshipRow.cs
- EntryIndex.cs
- MobileTemplatedControlDesigner.cs
- XmlRootAttribute.cs
- TypeDelegator.cs
- GridViewColumnHeaderAutomationPeer.cs
- RenderDataDrawingContext.cs
- LineBreak.cs
- GridViewRowPresenterBase.cs
- DockPattern.cs
- TextView.cs
- FacetValues.cs
- SignedXml.cs
- HttpTransportSecurityElement.cs
- ReadOnlyHierarchicalDataSource.cs
- ResolveCriteriaCD1.cs
- FilteredDataSetHelper.cs
- AttributeCollection.cs
- BrowserDefinition.cs
- unsafeIndexingFilterStream.cs
- XmlSiteMapProvider.cs
- ListBoxItemAutomationPeer.cs
- XmlUrlResolver.cs
- XmlStrings.cs
- CharacterBuffer.cs
- SqlBooleanMismatchVisitor.cs
- ParameterModifier.cs
- WorkflowApplicationUnhandledExceptionEventArgs.cs
- StringBuilder.cs
- RegistrationServices.cs
- AttributeEmitter.cs
- Variant.cs
- FileStream.cs
- CellParaClient.cs
- CodeDelegateCreateExpression.cs
- BindingGroup.cs
- CompensatableSequenceActivity.cs
- MessageQueueInstaller.cs
- ClientOptions.cs
- SQLDoubleStorage.cs
- Int32Rect.cs
- TransformerInfoCollection.cs
- CapiNative.cs
- ResponseBodyWriter.cs
- Cloud.cs
- FilterQueryOptionExpression.cs
- PageAdapter.cs
- KeyboardDevice.cs
- OutputCacheProfile.cs
- CheckBox.cs