Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- AngleUtil.cs
- CompiledAction.cs
- DataObjectAttribute.cs
- PrimaryKeyTypeConverter.cs
- FieldNameLookup.cs
- ObservableCollection.cs
- ClientTargetCollection.cs
- AsyncCallback.cs
- RSACryptoServiceProvider.cs
- updateconfighost.cs
- HttpListenerRequest.cs
- wmiprovider.cs
- sitestring.cs
- OletxResourceManager.cs
- XamlNamespaceHelper.cs
- RoleExceptions.cs
- StaticTextPointer.cs
- AcceptorSessionSymmetricMessageSecurityProtocol.cs
- Attributes.cs
- Gdiplus.cs
- ObjectDataSource.cs
- SelectionProcessor.cs
- ThemeDictionaryExtension.cs
- BinaryExpression.cs
- HtmlShimManager.cs
- ColorTransform.cs
- DispatchWrapper.cs
- PrimitiveXmlSerializers.cs
- DataStreams.cs
- RepeaterItem.cs
- ColorMap.cs
- UnsafeNativeMethods.cs
- SaveFileDialog.cs
- RequestCachingSection.cs
- SqlGenerator.cs
- SharedStream.cs
- WindowsUpDown.cs
- TreeNodeStyleCollection.cs
- EntityDataSourceStatementEditorForm.cs
- BitSet.cs
- HTMLTagNameToTypeMapper.cs
- DataSpaceManager.cs
- ActivityValidator.cs
- LogExtent.cs
- SQLInt64Storage.cs
- Transform.cs
- StylusPointCollection.cs
- Run.cs
- Utility.cs
- PerformanceCounterManager.cs
- SecurityTokenProvider.cs
- InfocardChannelParameter.cs
- EFColumnProvider.cs
- DesignerUtility.cs
- FileLoadException.cs
- ContextQuery.cs
- ZeroOpNode.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- Cursor.cs
- Point3DValueSerializer.cs
- QueryStringConverter.cs
- ObjectDataSourceView.cs
- SpellerInterop.cs
- DPCustomTypeDescriptor.cs
- ApplicationInfo.cs
- AuthorizationRuleCollection.cs
- HandledMouseEvent.cs
- Buffer.cs
- DurableInstanceContextProvider.cs
- PartialTrustValidationBehavior.cs
- GeneralTransform3D.cs
- SqlFunctionAttribute.cs
- Highlights.cs
- XmlIncludeAttribute.cs
- AssociationType.cs
- ProgressBar.cs
- ToolStripItem.cs
- SQLRoleProvider.cs
- COM2TypeInfoProcessor.cs
- ComponentCollection.cs
- XmlAttributeProperties.cs
- ReachPageContentSerializerAsync.cs
- FormClosingEvent.cs
- AsyncOperation.cs
- BulletedListEventArgs.cs
- ProfilePropertySettingsCollection.cs
- ThumbAutomationPeer.cs
- SafeHandles.cs
- HttpWriter.cs
- DataMemberConverter.cs
- FormsAuthenticationCredentials.cs
- RSAPKCS1SignatureFormatter.cs
- WindowsEditBoxRange.cs
- DataSourceControlBuilder.cs
- Maps.cs
- AssemblyAssociatedContentFileAttribute.cs
- ObjectDataSource.cs
- SqlDataSourceView.cs
- DbMetaDataFactory.cs
- ToolboxCategoryItems.cs