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
- BookmarkInfo.cs
- SafeEventHandle.cs
- FixedTextContainer.cs
- HttpChannelHelper.cs
- ResourceDictionary.cs
- SettingsContext.cs
- HandleRef.cs
- ProjectedWrapper.cs
- ServiceAuthorizationBehavior.cs
- CodeTypeParameter.cs
- TextBoxAutomationPeer.cs
- DataGrid.cs
- TextSelectionProcessor.cs
- SafeMemoryMappedFileHandle.cs
- DataTemplateSelector.cs
- PersonalizationProviderCollection.cs
- RawMouseInputReport.cs
- BindingEntityInfo.cs
- RowCache.cs
- DataContractFormatAttribute.cs
- CodeObject.cs
- BitmapDownload.cs
- _TransmitFileOverlappedAsyncResult.cs
- StringUtil.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- NotifyCollectionChangedEventArgs.cs
- Quad.cs
- SignedXml.cs
- WarningException.cs
- DirtyTextRange.cs
- EventLogReader.cs
- SectionVisual.cs
- ContextStaticAttribute.cs
- FileEnumerator.cs
- ListBase.cs
- RowUpdatingEventArgs.cs
- WeakEventManager.cs
- TextServicesCompartmentEventSink.cs
- AbsoluteQuery.cs
- IdentitySection.cs
- ClockController.cs
- JoinGraph.cs
- InternalResources.cs
- VisualStyleElement.cs
- DBSchemaRow.cs
- SafeTimerHandle.cs
- DayRenderEvent.cs
- Attributes.cs
- JpegBitmapEncoder.cs
- HyperLinkField.cs
- WithStatement.cs
- WebPartDisplayModeCollection.cs
- TiffBitmapDecoder.cs
- PolyBezierSegment.cs
- BitmapEffect.cs
- DSASignatureDeformatter.cs
- DbgCompiler.cs
- NotifyInputEventArgs.cs
- SiteMap.cs
- InlineCollection.cs
- ColorTranslator.cs
- BuildManager.cs
- MethodExecutor.cs
- MultitargetUtil.cs
- ImageMapEventArgs.cs
- Solver.cs
- TextServicesHost.cs
- ReadOnlyDictionary.cs
- RepeaterCommandEventArgs.cs
- MenuItem.cs
- ObjectStorage.cs
- XmlSchemaValidationException.cs
- EmbeddedMailObjectCollectionEditor.cs
- FormatException.cs
- HMACSHA256.cs
- URLAttribute.cs
- LinqDataView.cs
- DefaultBinder.cs
- PathTooLongException.cs
- Axis.cs
- MouseActionConverter.cs
- SoapElementAttribute.cs
- OciLobLocator.cs
- CoTaskMemSafeHandle.cs
- ActivityBuilderHelper.cs
- NullableFloatAverageAggregationOperator.cs
- RealProxy.cs
- Random.cs
- DataGridDetailsPresenterAutomationPeer.cs
- DnsPermission.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- RuleSettings.cs
- VectorAnimationUsingKeyFrames.cs
- Variant.cs
- AnnotationHelper.cs
- QueryOutputWriter.cs
- TextChangedEventArgs.cs
- HttpCacheVaryByContentEncodings.cs
- XhtmlBasicPhoneCallAdapter.cs
- ActivityInstanceReference.cs