Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Markup / RoutedEventValueSerializer.cs / 1305600 / RoutedEventValueSerializer.cs
//------------------------------------------------------------------------ // // Microsoft Windows Client Platform // Copyright (C) Microsoft Corporation, 2005 // // File: RoutedEventValueSerializer.cs // // Contents: Value serializer for the RoutedEvent class // // Created: 04/28/2005 [....] // //----------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Text; namespace System.Windows.Markup { internal class RoutedEventValueSerializer: ValueSerializer { public override bool CanConvertToString(object value, IValueSerializerContext context) { return ValueSerializer.GetSerializerFor(typeof(Type), context) != null; } public override bool CanConvertFromString(string value, IValueSerializerContext context) { return ValueSerializer.GetSerializerFor(typeof(Type), context) != null; } public override string ConvertToString(object value, IValueSerializerContext context) { RoutedEvent routedEvent = value as RoutedEvent; if (routedEvent != null) { ValueSerializer typeSerializer = ValueSerializer.GetSerializerFor(typeof(Type), context); if (typeSerializer != null) { return typeSerializer.ConvertToString(routedEvent.OwnerType, context) + "." + routedEvent.Name; } } return base.ConvertToString(value, context); } static DictionaryinitializedTypes = new Dictionary (); static void ForceTypeConstructors(Type currentType) { // Force load the Statics by walking up the hierarchy and running class constructors while (currentType != null && !initializedTypes.ContainsKey(currentType)) { MS.Internal.WindowsBase.SecurityHelper.RunClassConstructor(currentType); initializedTypes[currentType] = currentType; currentType = currentType.BaseType; } } public override object ConvertFromString(string value, IValueSerializerContext context) { ValueSerializer typeSerializer = ValueSerializer.GetSerializerFor(typeof(Type), context); if (typeSerializer != null) { int index = value.IndexOf('.'); if (index > 0) { Type type = typeSerializer.ConvertFromString(value.Substring(0, index), context) as Type; string name = value.Substring(index + 1).Trim(); ForceTypeConstructors(type); return EventManager.GetRoutedEventFromName(name, type); } } return base.ConvertFromString(value, context); } } } // 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: RoutedEventValueSerializer.cs // // Contents: Value serializer for the RoutedEvent class // // Created: 04/28/2005 [....] // //----------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Text; namespace System.Windows.Markup { internal class RoutedEventValueSerializer: ValueSerializer { public override bool CanConvertToString(object value, IValueSerializerContext context) { return ValueSerializer.GetSerializerFor(typeof(Type), context) != null; } public override bool CanConvertFromString(string value, IValueSerializerContext context) { return ValueSerializer.GetSerializerFor(typeof(Type), context) != null; } public override string ConvertToString(object value, IValueSerializerContext context) { RoutedEvent routedEvent = value as RoutedEvent; if (routedEvent != null) { ValueSerializer typeSerializer = ValueSerializer.GetSerializerFor(typeof(Type), context); if (typeSerializer != null) { return typeSerializer.ConvertToString(routedEvent.OwnerType, context) + "." + routedEvent.Name; } } return base.ConvertToString(value, context); } static Dictionary initializedTypes = new Dictionary (); static void ForceTypeConstructors(Type currentType) { // Force load the Statics by walking up the hierarchy and running class constructors while (currentType != null && !initializedTypes.ContainsKey(currentType)) { MS.Internal.WindowsBase.SecurityHelper.RunClassConstructor(currentType); initializedTypes[currentType] = currentType; currentType = currentType.BaseType; } } public override object ConvertFromString(string value, IValueSerializerContext context) { ValueSerializer typeSerializer = ValueSerializer.GetSerializerFor(typeof(Type), context); if (typeSerializer != null) { int index = value.IndexOf('.'); if (index > 0) { Type type = typeSerializer.ConvertFromString(value.Substring(0, index), context) as Type; string name = value.Substring(index + 1).Trim(); ForceTypeConstructors(type); return EventManager.GetRoutedEventFromName(name, type); } } return base.ConvertFromString(value, context); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Matrix3DValueSerializer.cs
- CommonXSendMessage.cs
- TypedTableBaseExtensions.cs
- ConfigXmlCDataSection.cs
- RolePrincipal.cs
- DrawingAttributes.cs
- NumberEdit.cs
- XmlToDatasetMap.cs
- ModuleBuilderData.cs
- ISAPIApplicationHost.cs
- MobileResource.cs
- ControlCachePolicy.cs
- ColorTransformHelper.cs
- HtmlMeta.cs
- LockCookie.cs
- CollectionViewGroupInternal.cs
- WebPartCatalogCloseVerb.cs
- TextSelectionHighlightLayer.cs
- StaticSiteMapProvider.cs
- ClientBuildManager.cs
- MessageSecurityOverTcpElement.cs
- TypographyProperties.cs
- SystemColorTracker.cs
- MenuCommands.cs
- WriteFileContext.cs
- Calendar.cs
- PermissionToken.cs
- SimpleMailWebEventProvider.cs
- BinaryMessageFormatter.cs
- SatelliteContractVersionAttribute.cs
- PackWebResponse.cs
- DnsPermission.cs
- TextPenaltyModule.cs
- EmptyImpersonationContext.cs
- ContentFilePart.cs
- StrokeCollectionDefaultValueFactory.cs
- LayoutUtils.cs
- TextServicesCompartmentContext.cs
- EntityWrapper.cs
- MessageDecoder.cs
- ManagedWndProcTracker.cs
- Utils.cs
- AdPostCacheSubstitution.cs
- DBParameter.cs
- EnvelopedPkcs7.cs
- HttpCapabilitiesSectionHandler.cs
- SortFieldComparer.cs
- XmlValueConverter.cs
- TagPrefixCollection.cs
- RecipientInfo.cs
- ProtocolsConfiguration.cs
- PathFigureCollection.cs
- RoutedEventArgs.cs
- Page.cs
- RecommendedAsConfigurableAttribute.cs
- ButtonField.cs
- DbUpdateCommandTree.cs
- RetriableClipboard.cs
- Scene3D.cs
- BufferModeSettings.cs
- ConfigXmlAttribute.cs
- RelatedPropertyManager.cs
- PropertiesTab.cs
- WebPartZoneBase.cs
- GorillaCodec.cs
- HostingEnvironmentSection.cs
- EditorPartCollection.cs
- ProfilePropertyNameValidator.cs
- PropertyCollection.cs
- SecuritySessionClientSettings.cs
- StringWriter.cs
- DefaultAuthorizationContext.cs
- CustomSignedXml.cs
- PrincipalPermission.cs
- Console.cs
- GlobalEventManager.cs
- PropertySegmentSerializer.cs
- ErrorFormatterPage.cs
- cryptoapiTransform.cs
- PaintValueEventArgs.cs
- ActivityWithResult.cs
- RegistryHandle.cs
- WindowsRebar.cs
- TextProperties.cs
- Viewport2DVisual3D.cs
- XmlValueConverter.cs
- DataSourceXmlSerializer.cs
- SchemaInfo.cs
- ConvertEvent.cs
- Polygon.cs
- FontSourceCollection.cs
- FormatConvertedBitmap.cs
- StaticFileHandler.cs
- StringPropertyBuilder.cs
- LazyLoadBehavior.cs
- OdbcException.cs
- ReferentialConstraint.cs
- BaseDataList.cs
- StickyNote.cs
- TCPListener.cs