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
- FieldDescriptor.cs
- SqlRewriteScalarSubqueries.cs
- PageAsyncTaskManager.cs
- Journal.cs
- SignatureTargetIdManager.cs
- PerformanceCountersElement.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- ChtmlPageAdapter.cs
- ObjectPropertyMapping.cs
- BridgeDataRecord.cs
- dataSvcMapFileLoader.cs
- _ProxyRegBlob.cs
- FontStretches.cs
- FontSizeConverter.cs
- HttpRequest.cs
- MimeXmlReflector.cs
- WarningException.cs
- XmlComment.cs
- XmlAttributes.cs
- UrlPath.cs
- DrawingCollection.cs
- HtmlInputCheckBox.cs
- XmlSchemaDatatype.cs
- EdmToObjectNamespaceMap.cs
- X509Chain.cs
- DesignerActionListCollection.cs
- FormsAuthenticationUserCollection.cs
- EventBookmark.cs
- QueueProcessor.cs
- BinHexEncoding.cs
- DataGrid.cs
- SingleTagSectionHandler.cs
- Figure.cs
- SchemaManager.cs
- TemplateControlBuildProvider.cs
- BinaryObjectWriter.cs
- TextElementEnumerator.cs
- MachineKeySection.cs
- ColorMap.cs
- Models.cs
- GridViewUpdateEventArgs.cs
- MetadataCache.cs
- AnnouncementDispatcherAsyncResult.cs
- ArgumentDesigner.xaml.cs
- BufferBuilder.cs
- WindowsListViewGroup.cs
- Propagator.ExtentPlaceholderCreator.cs
- FileFormatException.cs
- BindToObject.cs
- EntityException.cs
- WSDualHttpBindingCollectionElement.cs
- X509Certificate.cs
- PrimitiveXmlSerializers.cs
- Thread.cs
- SqlCachedBuffer.cs
- ListViewGroupConverter.cs
- Section.cs
- ThreadStateException.cs
- GeometryCombineModeValidation.cs
- DataSourceControlBuilder.cs
- GPPOINTF.cs
- Style.cs
- XmlSchemaInfo.cs
- ContentDisposition.cs
- DataRelationCollection.cs
- UnsafeNativeMethods.cs
- StylesEditorDialog.cs
- HashHelper.cs
- DocumentOutline.cs
- SweepDirectionValidation.cs
- BitSet.cs
- MasterPageCodeDomTreeGenerator.cs
- LostFocusEventManager.cs
- MouseCaptureWithinProperty.cs
- Menu.cs
- TemplateContentLoader.cs
- BinaryParser.cs
- PermissionToken.cs
- TextOutput.cs
- NativeMethodsOther.cs
- QilStrConcatenator.cs
- SizeF.cs
- AssociationTypeEmitter.cs
- SQLResource.cs
- QueryIntervalOp.cs
- Polyline.cs
- relpropertyhelper.cs
- SqlMethodTransformer.cs
- StoreContentChangedEventArgs.cs
- BoundingRectTracker.cs
- Comparer.cs
- SpecialFolderEnumConverter.cs
- HostExecutionContextManager.cs
- HttpModuleAction.cs
- SelectedCellsCollection.cs
- WebPartDeleteVerb.cs
- GroupStyle.cs
- ConsumerConnectionPointCollection.cs
- SafeCryptContextHandle.cs
- SafeFindHandle.cs