Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- ValidatedControlConverter.cs
- AuthenticationSchemesHelper.cs
- WindowsTitleBar.cs
- HandoffBehavior.cs
- _ConnectionGroup.cs
- PolyBezierSegmentFigureLogic.cs
- ClientBuildManager.cs
- SerializationStore.cs
- AnonymousIdentificationModule.cs
- NonVisualControlAttribute.cs
- ThemeDirectoryCompiler.cs
- Exceptions.cs
- XamlClipboardData.cs
- SqlCacheDependencyDatabase.cs
- ImmutableCommunicationTimeouts.cs
- UserControl.cs
- ExpressionBindings.cs
- HttpPostProtocolReflector.cs
- Style.cs
- HScrollBar.cs
- EventSourceCreationData.cs
- HelpKeywordAttribute.cs
- TypedElement.cs
- PlainXmlSerializer.cs
- MenuItem.cs
- GridViewRowPresenter.cs
- RankException.cs
- TreeNodeMouseHoverEvent.cs
- XamlClipboardData.cs
- AutomationPropertyInfo.cs
- ContextMarshalException.cs
- PositiveTimeSpanValidator.cs
- ErrorWebPart.cs
- OneOfConst.cs
- Point3DConverter.cs
- FlowLayoutSettings.cs
- AuthenticatedStream.cs
- ProxyWebPartManager.cs
- ApplicationSecurityManager.cs
- Stopwatch.cs
- Repeater.cs
- Version.cs
- X509Certificate2Collection.cs
- Attributes.cs
- Keyboard.cs
- RowToFieldTransformer.cs
- ToolStripContentPanel.cs
- BitmapEffectGeneralTransform.cs
- Error.cs
- _NegoStream.cs
- PropertyChangingEventArgs.cs
- SkewTransform.cs
- ActivityDesigner.cs
- LinearGradientBrush.cs
- BitStream.cs
- TreeViewImageIndexConverter.cs
- FieldToken.cs
- ButtonBase.cs
- ListSourceHelper.cs
- PartDesigner.cs
- TextAutomationPeer.cs
- XamlFilter.cs
- ConnectionProviderAttribute.cs
- HighlightComponent.cs
- OperationInvokerBehavior.cs
- Composition.cs
- ECDiffieHellmanPublicKey.cs
- TextServicesHost.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- URIFormatException.cs
- DbConnectionPoolCounters.cs
- Simplifier.cs
- FilterEventArgs.cs
- Clock.cs
- ToolStripDropDown.cs
- RuleSettingsCollection.cs
- QueryOutputWriter.cs
- TransformPattern.cs
- ObjectDataSourceMethodEditor.cs
- PreservationFileReader.cs
- BufferBuilder.cs
- MenuEventArgs.cs
- PhysicalAddress.cs
- ConvertEvent.cs
- XmlQueryStaticData.cs
- Point3D.cs
- PointAnimationUsingKeyFrames.cs
- XmlEnumAttribute.cs
- AspNetHostingPermission.cs
- OrderingInfo.cs
- GlyphRun.cs
- ObjectListItem.cs
- DataServiceQueryProvider.cs
- ApplicationFileParser.cs
- Matrix3DStack.cs
- HttpHandlerActionCollection.cs
- SharedStatics.cs
- Win32.cs
- ListParagraph.cs
- TimeStampChecker.cs