Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- GPPOINTF.cs
- BindingExpressionBase.cs
- DesignerView.cs
- AccessibleObject.cs
- BaseConfigurationRecord.cs
- AsyncResult.cs
- RC2.cs
- SimpleWorkerRequest.cs
- DataGridViewComboBoxCell.cs
- GlobalizationSection.cs
- SystemWebSectionGroup.cs
- ConfigXmlElement.cs
- X509ChainPolicy.cs
- DerivedKeySecurityToken.cs
- DataBindingExpressionBuilder.cs
- InitializationEventAttribute.cs
- _ListenerAsyncResult.cs
- DataListCommandEventArgs.cs
- WindowsToolbarAsMenu.cs
- EllipseGeometry.cs
- MemberPathMap.cs
- ErrorEventArgs.cs
- Transactions.cs
- SendMessageContent.cs
- Reference.cs
- Schema.cs
- GraphicsContainer.cs
- ServerIdentity.cs
- Type.cs
- SettingsAttributes.cs
- DispatcherTimer.cs
- IRCollection.cs
- XmlBinaryReader.cs
- UnmanagedMemoryStreamWrapper.cs
- ExceptionHelpers.cs
- DbMetaDataFactory.cs
- PageTextBox.cs
- ConfigXmlDocument.cs
- DataGridItemEventArgs.cs
- SolidBrush.cs
- CacheDependency.cs
- LogExtent.cs
- HttpAsyncResult.cs
- ObjectDataSourceMethodEventArgs.cs
- JoinGraph.cs
- RelationshipNavigation.cs
- GenericWebPart.cs
- ForceCopyBuildProvider.cs
- externdll.cs
- DataKeyPropertyAttribute.cs
- SqlMethodAttribute.cs
- CompositeCollection.cs
- EditorPartCollection.cs
- XmlSerializerNamespaces.cs
- PropertyInfo.cs
- XmlArrayItemAttribute.cs
- EnumValAlphaComparer.cs
- ServiceBehaviorElementCollection.cs
- TiffBitmapEncoder.cs
- DataSourceHelper.cs
- LinqDataSourceUpdateEventArgs.cs
- ChildChangedEventArgs.cs
- TemplateColumn.cs
- XamlSerializerUtil.cs
- Roles.cs
- AppDomainManager.cs
- DataPagerFieldCollection.cs
- StrongNameKeyPair.cs
- StrongName.cs
- RuleInfoComparer.cs
- MultipleViewPattern.cs
- BamlMapTable.cs
- DesignerDataSchemaClass.cs
- ReadOnlyTernaryTree.cs
- ResourceManager.cs
- HashHelper.cs
- SchemaSetCompiler.cs
- CodeTypeDeclaration.cs
- WebContext.cs
- Evidence.cs
- AttachInfo.cs
- SchemaDeclBase.cs
- HandleCollector.cs
- XDeferredAxisSource.cs
- UnsafeNativeMethods.cs
- Membership.cs
- UnmanagedMemoryStreamWrapper.cs
- TransactionOptions.cs
- UIAgentRequest.cs
- EventManager.cs
- XPathCompileException.cs
- DocumentsTrace.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- ErrorEventArgs.cs
- ToolBarButton.cs
- _UriTypeConverter.cs
- BlockExpression.cs
- CacheRequest.cs
- CacheModeValueSerializer.cs
- DisplayNameAttribute.cs