Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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 chuckj // //----------------------------------------------------------------------- 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SecurityRequiresReviewAttribute.cs
- WebZone.cs
- ContractSearchPattern.cs
- Screen.cs
- Pts.cs
- DateTimeUtil.cs
- IOException.cs
- TreeIterator.cs
- ImportedNamespaceContextItem.cs
- OpCopier.cs
- HostedTransportConfigurationManager.cs
- RelationshipSet.cs
- QilPatternVisitor.cs
- Highlights.cs
- StylusLogic.cs
- DataGrid.cs
- DetailsViewActionList.cs
- ApplicationGesture.cs
- _CacheStreams.cs
- AngleUtil.cs
- ToRequest.cs
- RangeValuePattern.cs
- BuildResultCache.cs
- DataGridHelper.cs
- FileUpload.cs
- DependencyObjectProvider.cs
- AsyncDataRequest.cs
- XmlUtf8RawTextWriter.cs
- WebConfigurationFileMap.cs
- SafeRsaProviderHandle.cs
- _BaseOverlappedAsyncResult.cs
- SafeHandles.cs
- _LazyAsyncResult.cs
- SqlCharStream.cs
- LostFocusEventManager.cs
- ProxyFragment.cs
- RealizationDrawingContextWalker.cs
- XamlFilter.cs
- WebEventTraceProvider.cs
- MethodAccessException.cs
- ExpressionBuilderContext.cs
- FormViewModeEventArgs.cs
- TagNameToTypeMapper.cs
- DataGridViewComboBoxCell.cs
- EarlyBoundInfo.cs
- SizeLimitedCache.cs
- CheckBoxBaseAdapter.cs
- unitconverter.cs
- FontCollection.cs
- MailSettingsSection.cs
- PrinterUnitConvert.cs
- AppliedDeviceFiltersEditor.cs
- TypeForwardedToAttribute.cs
- SelectionGlyph.cs
- ObjectDataSource.cs
- DataServiceRequestArgs.cs
- RectKeyFrameCollection.cs
- ListBoxChrome.cs
- SizeKeyFrameCollection.cs
- CreateRefExpr.cs
- BitmapEffectInput.cs
- GridViewCancelEditEventArgs.cs
- ManagementClass.cs
- XmlDsigSep2000.cs
- GridViewHeaderRowPresenter.cs
- ErrorHandler.cs
- FixedDocumentPaginator.cs
- DateTimeConverter2.cs
- DataGridViewCellStyleChangedEventArgs.cs
- control.ime.cs
- CodeActivityMetadata.cs
- Splitter.cs
- GeneralTransformCollection.cs
- SqlTransaction.cs
- QueryUtil.cs
- _CookieModule.cs
- GeometryModel3D.cs
- NavigationService.cs
- XamlWrapperReaders.cs
- DetailsViewModeEventArgs.cs
- EventTrigger.cs
- GacUtil.cs
- ServiceContractDetailViewControl.cs
- Material.cs
- RuntimeHelpers.cs
- SchemaImporter.cs
- oledbconnectionstring.cs
- HtmlButton.cs
- Button.cs
- DataGridSortCommandEventArgs.cs
- XsdValidatingReader.cs
- querybuilder.cs
- SqlTransaction.cs
- LocatorBase.cs
- SerializationAttributes.cs
- NativeMethods.cs
- FrameworkRichTextComposition.cs
- ToolStripContainerActionList.cs
- ParameterReplacerVisitor.cs
- NameTable.cs