Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Markup / RoutedEventValueSerializer.cs / 1305600 / 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)) { MS.Internal.WindowsBase.SecurityHelper.RunClassConstructor(currentType); 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
- CancelRequestedRecord.cs
- CombinedGeometry.cs
- InvokeWebServiceDesigner.cs
- Fonts.cs
- CardSpacePolicyElement.cs
- PaperSize.cs
- UiaCoreApi.cs
- InitializerFacet.cs
- ProjectionPlanCompiler.cs
- KeyFrames.cs
- SecurityDocument.cs
- CompiledQuery.cs
- ParameterRetriever.cs
- EventsTab.cs
- FloaterParagraph.cs
- Base64Encoder.cs
- TextEffectResolver.cs
- ObjectItemAssemblyLoader.cs
- LinqDataSourceDisposeEventArgs.cs
- ThreadAbortException.cs
- WorkItem.cs
- shaper.cs
- PtsHelper.cs
- TypeKeyValue.cs
- MULTI_QI.cs
- BackgroundWorker.cs
- SecUtil.cs
- EntityDataSourceContextDisposingEventArgs.cs
- HttpHandlersSection.cs
- NavigationEventArgs.cs
- PartitionedDataSource.cs
- ContentDisposition.cs
- TypedTableGenerator.cs
- ThousandthOfEmRealPoints.cs
- OleDbErrorCollection.cs
- CapacityStreamGeometryContext.cs
- LogWriteRestartAreaAsyncResult.cs
- SqlPersonalizationProvider.cs
- TimerElapsedEvenArgs.cs
- ScrollProperties.cs
- DataGridViewLayoutData.cs
- FixedPageProcessor.cs
- SimpleTypeResolver.cs
- InternalsVisibleToAttribute.cs
- TreeViewImageKeyConverter.cs
- ErrorWrapper.cs
- XmlIncludeAttribute.cs
- ColorInterpolationModeValidation.cs
- SrgsSubset.cs
- AmbientValueAttribute.cs
- TlsnegoTokenProvider.cs
- ExpressionParser.cs
- EntryWrittenEventArgs.cs
- Document.cs
- MaxMessageSizeStream.cs
- LocationSectionRecord.cs
- HttpCookieCollection.cs
- XmlObjectSerializerWriteContext.cs
- IndexOutOfRangeException.cs
- DetailsViewInsertedEventArgs.cs
- SafeEventLogReadHandle.cs
- DrawingCollection.cs
- DependencyPropertyValueSerializer.cs
- VScrollBar.cs
- ModuleBuilderData.cs
- XmlSchemaSubstitutionGroup.cs
- DrawingContextDrawingContextWalker.cs
- MapPathBasedVirtualPathProvider.cs
- SoapSchemaImporter.cs
- DefaultHttpHandler.cs
- SQLInt16.cs
- CrossContextChannel.cs
- SecurityContext.cs
- ServiceChannel.cs
- TraceSwitch.cs
- PreservationFileReader.cs
- LinkClickEvent.cs
- ListViewItem.cs
- ToolStripDropDown.cs
- ManualResetEvent.cs
- HttpCachePolicyElement.cs
- TTSEvent.cs
- DataObjectPastingEventArgs.cs
- DbConvert.cs
- PreloadedPackages.cs
- StatusBar.cs
- FixedSOMTableCell.cs
- Light.cs
- DataControlCommands.cs
- HttpCapabilitiesEvaluator.cs
- LineVisual.cs
- InstallHelper.cs
- DataGridViewRowCancelEventArgs.cs
- ObjectAssociationEndMapping.cs
- Stylesheet.cs
- ContextProperty.cs
- SQLResource.cs
- ArrangedElement.cs
- ValidationRuleCollection.cs
- TextBox.cs