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 / RoutedEventValueSerializer.cs / 1 / 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)) { System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor(currentType.TypeHandle); 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)) { System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor(currentType.TypeHandle); 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

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WebPartVerb.cs
- SqlUdtInfo.cs
- TrackBarDesigner.cs
- CmsInterop.cs
- XPathException.cs
- storepermission.cs
- MasterPageBuildProvider.cs
- EventLogInformation.cs
- XsltLoader.cs
- DecoderFallback.cs
- DataViewListener.cs
- ContentOperations.cs
- XmlArrayItemAttribute.cs
- ZipIOExtraFieldElement.cs
- RouteCollection.cs
- WebPartCatalogCloseVerb.cs
- SessionParameter.cs
- WebBrowserNavigatedEventHandler.cs
- SimpleLine.cs
- MemoryMappedViewStream.cs
- ProcessModelInfo.cs
- MachineSettingsSection.cs
- ChannelRequirements.cs
- ControlSerializer.cs
- EnvelopedSignatureTransform.cs
- BaseTemplateCodeDomTreeGenerator.cs
- KeySpline.cs
- CodeExpressionCollection.cs
- BoundsDrawingContextWalker.cs
- DataServiceKeyAttribute.cs
- GorillaCodec.cs
- PageAdapter.cs
- OutputScopeManager.cs
- Compiler.cs
- EmptyReadOnlyDictionaryInternal.cs
- InternalsVisibleToAttribute.cs
- BaseCAMarshaler.cs
- DoubleConverter.cs
- TextServicesContext.cs
- NavigationHelper.cs
- BooleanExpr.cs
- SecurityPolicySection.cs
- XmlSerializableServices.cs
- AuthorizationRule.cs
- ButtonFieldBase.cs
- DataControlFieldCell.cs
- MainMenu.cs
- WebPartCatalogAddVerb.cs
- LinkTarget.cs
- OutputScope.cs
- StandardCommands.cs
- NavigationFailedEventArgs.cs
- FunctionGenerator.cs
- Attachment.cs
- CmsInterop.cs
- Geometry3D.cs
- CodeAttachEventStatement.cs
- HttpContextServiceHost.cs
- Win32.cs
- HttpSessionStateBase.cs
- OrderPreservingPipeliningSpoolingTask.cs
- SelectionUIHandler.cs
- IncrementalReadDecoders.cs
- CursorInteropHelper.cs
- DesignerCommandSet.cs
- MSHTMLHost.cs
- PrefixHandle.cs
- WmpBitmapDecoder.cs
- ViewLoader.cs
- CharacterString.cs
- ObjectItemNoOpAssemblyLoader.cs
- AspCompat.cs
- MetadataArtifactLoader.cs
- SamlAuthorizationDecisionStatement.cs
- DataListCommandEventArgs.cs
- DetailsViewUpdatedEventArgs.cs
- ProviderSettingsCollection.cs
- CodeIterationStatement.cs
- MimeWriter.cs
- MsdtcClusterUtils.cs
- WindowsListViewGroup.cs
- Figure.cs
- UnSafeCharBuffer.cs
- AnnouncementService.cs
- MulticastNotSupportedException.cs
- RayHitTestParameters.cs
- WorkflowIdleElement.cs
- precedingquery.cs
- InstanceLockException.cs
- TerminatorSinks.cs
- AppModelKnownContentFactory.cs
- TraceHelpers.cs
- RSAOAEPKeyExchangeFormatter.cs
- AmbiguousMatchException.cs
- FamilyCollection.cs
- X509PeerCertificateElement.cs
- DataViewListener.cs
- PrintEvent.cs
- RoleManagerEventArgs.cs
- ArgumentDesigner.xaml.cs