Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Framework / System / Windows / Markup / TypeExtensionConverter.cs / 1 / TypeExtensionConverter.cs
//------------------------------------------------------------------------ // // Microsoft Windows Client Platform // Copyright (C) Microsoft Corporation, 2005 // // File: TypeExtensionConverter.cs // // Contents: Converter to convert TypeExtensions to InstanceDescriptors // Created: 04/28/2005 [....] // //----------------------------------------------------------------------- using System; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Collections.Generic; using System.Text; using System.Security; namespace System.Windows.Markup { class TypeExtensionConverter : TypeConverter { public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) { if (destinationType == typeof(InstanceDescriptor)) { return true; } return base.CanConvertTo(context, destinationType); } ////// Critical: calls InstanceDescriptor ctor which LinkDemands /// TreatAsSafe: can only make an InstanceDescriptor for TypeExtension, not an arbitrary class /// [SecurityCritical, SecurityTreatAsSafe] public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(InstanceDescriptor)) { TypeExtension typeExtension = value as TypeExtension; if (typeExtension == null) { throw new ArgumentException(SR.Get(SRID.MustBeOfType, "value", "TypeExtension")); } return new InstanceDescriptor(typeof(TypeExtension).GetConstructor(new Type[] { typeof(Type) }), new object[] { typeExtension.Type }); } return base.ConvertTo(context, culture, value, destinationType); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------ // // Microsoft Windows Client Platform // Copyright (C) Microsoft Corporation, 2005 // // File: TypeExtensionConverter.cs // // Contents: Converter to convert TypeExtensions to InstanceDescriptors // Created: 04/28/2005 [....] // //----------------------------------------------------------------------- using System; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Collections.Generic; using System.Text; using System.Security; namespace System.Windows.Markup { class TypeExtensionConverter : TypeConverter { public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) { if (destinationType == typeof(InstanceDescriptor)) { return true; } return base.CanConvertTo(context, destinationType); } ////// Critical: calls InstanceDescriptor ctor which LinkDemands /// TreatAsSafe: can only make an InstanceDescriptor for TypeExtension, not an arbitrary class /// [SecurityCritical, SecurityTreatAsSafe] public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(InstanceDescriptor)) { TypeExtension typeExtension = value as TypeExtension; if (typeExtension == null) { throw new ArgumentException(SR.Get(SRID.MustBeOfType, "value", "TypeExtension")); } return new InstanceDescriptor(typeof(TypeExtension).GetConstructor(new Type[] { typeof(Type) }), new object[] { typeExtension.Type }); } return base.ConvertTo(context, culture, 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
- MultiAsyncResult.cs
- DataBindingCollection.cs
- BufferedWebEventProvider.cs
- MasterPageParser.cs
- KerberosSecurityTokenProvider.cs
- RegionInfo.cs
- FlowchartDesigner.Helpers.cs
- DataServiceQueryException.cs
- MetadataLocation.cs
- StoreAnnotationsMap.cs
- OutOfMemoryException.cs
- X509ChainElement.cs
- LockedBorderGlyph.cs
- BezierSegment.cs
- SamlAttribute.cs
- StatusBarItem.cs
- FullTextLine.cs
- GetParentChain.cs
- SpAudioStreamWrapper.cs
- WindowsIPAddress.cs
- ServiceModelConfigurationSectionGroup.cs
- X509SecurityTokenProvider.cs
- RegexGroup.cs
- WindowVisualStateTracker.cs
- Localizer.cs
- DocumentSchemaValidator.cs
- DesignerAttribute.cs
- GenericsInstances.cs
- TimeSpanStorage.cs
- RawUIStateInputReport.cs
- TableCellAutomationPeer.cs
- UseLicense.cs
- LinearKeyFrames.cs
- MessageEnumerator.cs
- CodeCommentStatement.cs
- ManagedWndProcTracker.cs
- XPathItem.cs
- ApplicationException.cs
- PerformanceCounterPermission.cs
- ComPlusTypeLoader.cs
- WindowsTreeView.cs
- BlurEffect.cs
- CmsInterop.cs
- FlowPosition.cs
- DateTimeFormat.cs
- DrawingContextDrawingContextWalker.cs
- StylusEventArgs.cs
- XamlToRtfWriter.cs
- ByteStorage.cs
- TraceLog.cs
- CommandField.cs
- TextChangedEventArgs.cs
- SizeFConverter.cs
- CodeMemberMethod.cs
- SystemIPv4InterfaceProperties.cs
- XamlPathDataSerializer.cs
- ProfileProvider.cs
- NoneExcludedImageIndexConverter.cs
- HtmlInputCheckBox.cs
- TypeDefinition.cs
- SecureEnvironment.cs
- SecurityManager.cs
- FocusTracker.cs
- AnnotationHelper.cs
- FormViewUpdateEventArgs.cs
- ArcSegment.cs
- ContractNamespaceAttribute.cs
- BindingNavigator.cs
- SafeNativeMethods.cs
- WebPartZone.cs
- BindValidator.cs
- _emptywebproxy.cs
- RSAPKCS1SignatureDeformatter.cs
- InkCanvasSelection.cs
- SQLDecimal.cs
- DrawTreeNodeEventArgs.cs
- KeyBinding.cs
- Figure.cs
- ApplicationSecurityManager.cs
- Stacktrace.cs
- ImageSource.cs
- Debug.cs
- ChannelBinding.cs
- StylusButtonEventArgs.cs
- DataFormat.cs
- PersonalizablePropertyEntry.cs
- DBCSCodePageEncoding.cs
- SmtpNtlmAuthenticationModule.cs
- ScriptBehaviorDescriptor.cs
- CellQuery.cs
- DebugView.cs
- AssociationTypeEmitter.cs
- ResXFileRef.cs
- EntityTransaction.cs
- ComboBox.cs
- JapaneseLunisolarCalendar.cs
- LogFlushAsyncResult.cs
- TraceHelpers.cs
- Window.cs
- ProbeMatchesMessageCD1.cs