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
- UriTemplateVariableQueryValue.cs
- LoadedOrUnloadedOperation.cs
- EdmPropertyAttribute.cs
- RectIndependentAnimationStorage.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- KnownAssemblyEntry.cs
- VBCodeProvider.cs
- UnsignedPublishLicense.cs
- DesignerGenericWebPart.cs
- ScrollableControl.cs
- oledbmetadatacollectionnames.cs
- BitmapEffect.cs
- ToolStripTemplateNode.cs
- Attributes.cs
- __TransparentProxy.cs
- ContourSegment.cs
- TableLayout.cs
- RegexMatch.cs
- Tablet.cs
- CustomValidator.cs
- RequestCachePolicy.cs
- isolationinterop.cs
- StickyNoteContentControl.cs
- WorkflowInstanceProvider.cs
- OdbcParameter.cs
- HttpHeaderCollection.cs
- EntityCommandCompilationException.cs
- UrlAuthFailedErrorFormatter.cs
- DirectoryNotFoundException.cs
- StickyNoteHelper.cs
- EtwTrace.cs
- SqlConnection.cs
- CodeIdentifiers.cs
- DesignBindingConverter.cs
- ConfigurationErrorsException.cs
- PackageRelationshipSelector.cs
- DelegateArgumentValue.cs
- DataSvcMapFile.cs
- RadioButtonFlatAdapter.cs
- BrowserCapabilitiesCodeGenerator.cs
- SoapAttributeAttribute.cs
- TraceHwndHost.cs
- GeneralTransform.cs
- ClassicBorderDecorator.cs
- GlyphTypeface.cs
- BindingExpression.cs
- ScrollItemProviderWrapper.cs
- Common.cs
- DataTablePropertyDescriptor.cs
- PauseStoryboard.cs
- RowVisual.cs
- JulianCalendar.cs
- ValidatorCollection.cs
- ExtensibleClassFactory.cs
- IDReferencePropertyAttribute.cs
- followingsibling.cs
- RoutedCommand.cs
- TextRangeEditTables.cs
- DbConnectionHelper.cs
- PlatformCulture.cs
- BufferedOutputStream.cs
- AutoResetEvent.cs
- XPathNodePointer.cs
- EqualityComparer.cs
- GeneralTransform3DGroup.cs
- WebPartManagerInternals.cs
- ToggleButton.cs
- EntitySetBaseCollection.cs
- ListBindableAttribute.cs
- DefaultProxySection.cs
- TdsValueSetter.cs
- OleDbRowUpdatingEvent.cs
- StyleConverter.cs
- LineMetrics.cs
- HebrewCalendar.cs
- CustomAttributeSerializer.cs
- PropertyInfoSet.cs
- TempFiles.cs
- ResourceManager.cs
- EmptyImpersonationContext.cs
- ValidatingPropertiesEventArgs.cs
- OleDbCommand.cs
- Type.cs
- XmlTypeMapping.cs
- CompositeControl.cs
- ClientTarget.cs
- SafeLibraryHandle.cs
- MimeParameter.cs
- ScopedKnownTypes.cs
- RelationshipSet.cs
- TextParagraphCache.cs
- StylusPlugInCollection.cs
- CaseInsensitiveHashCodeProvider.cs
- ColorKeyFrameCollection.cs
- GPStream.cs
- CachedResourceDictionaryExtension.cs
- DBConcurrencyException.cs
- RadioButtonDesigner.cs
- TagPrefixAttribute.cs
- MediaPlayer.cs