Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- EmissiveMaterial.cs
- InvalidDataException.cs
- DataGridViewImageColumn.cs
- ClientBuildManager.cs
- JsonXmlDataContract.cs
- DesignerActionMethodItem.cs
- ToolConsole.cs
- TransactionContextValidator.cs
- ApplicationDirectory.cs
- XmlEnumAttribute.cs
- DbBuffer.cs
- UTF7Encoding.cs
- DesignerEventService.cs
- NativeMethods.cs
- SchemaEntity.cs
- MatrixConverter.cs
- Executor.cs
- AnnotationObservableCollection.cs
- CodeGenerator.cs
- DateTimeOffset.cs
- Context.cs
- DockingAttribute.cs
- ControlBindingsConverter.cs
- FixedSOMPage.cs
- SoapObjectReader.cs
- FrameworkReadOnlyPropertyMetadata.cs
- DefaultAsyncDataDispatcher.cs
- XmlSortKeyAccumulator.cs
- DrawListViewItemEventArgs.cs
- EventLogger.cs
- _LocalDataStore.cs
- CrossContextChannel.cs
- Int32CollectionConverter.cs
- ByteAnimationBase.cs
- NavigationEventArgs.cs
- RedirectionProxy.cs
- ListViewHitTestInfo.cs
- IncrementalCompileAnalyzer.cs
- FormViewDeleteEventArgs.cs
- SelectionProcessor.cs
- DrawingState.cs
- JsonEncodingStreamWrapper.cs
- NetworkInterface.cs
- XmlWrappingReader.cs
- TableItemStyle.cs
- EventTask.cs
- Italic.cs
- Soap.cs
- RangeBase.cs
- ClientSideProviderDescription.cs
- CredentialCache.cs
- WebPartZone.cs
- TableAutomationPeer.cs
- ButtonBase.cs
- PageThemeParser.cs
- CompensationExtension.cs
- XamlReaderHelper.cs
- StsCommunicationException.cs
- HostedElements.cs
- BinaryObjectWriter.cs
- TextReader.cs
- XmlBinaryReader.cs
- CssStyleCollection.cs
- processwaithandle.cs
- ExceptionHelpers.cs
- documentsequencetextcontainer.cs
- SQLConvert.cs
- KeyedCollection.cs
- ZipIOExtraFieldElement.cs
- FileClassifier.cs
- ListenerAdapter.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- X509CertificateCollection.cs
- ToggleButton.cs
- OdbcDataAdapter.cs
- MarkupExtensionReturnTypeAttribute.cs
- XPathItem.cs
- RoleManagerSection.cs
- WebPartEditorCancelVerb.cs
- SessionStateContainer.cs
- TypeReference.cs
- HMACSHA1.cs
- UnsafeCollabNativeMethods.cs
- TreeNodeStyle.cs
- ArraySubsetEnumerator.cs
- XmlSchemaProviderAttribute.cs
- ComboBox.cs
- DetailsViewInsertedEventArgs.cs
- ToolStripMenuItemCodeDomSerializer.cs
- UncommonField.cs
- DataGridColumnFloatingHeader.cs
- InstanceLockTracking.cs
- ListItemCollection.cs
- GlyphingCache.cs
- HMACSHA384.cs
- CqlLexer.cs
- SoapHeader.cs
- ServerIdentity.cs
- PropertyPath.cs
- CacheRequest.cs