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
- UnaryQueryOperator.cs
- SQLDecimal.cs
- IItemContainerGenerator.cs
- CodeTypeOfExpression.cs
- LogRecordSequence.cs
- ProviderUtil.cs
- SmtpTransport.cs
- SerTrace.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- DateTimeValueSerializer.cs
- TextContainerHelper.cs
- TypographyProperties.cs
- ContentValidator.cs
- OleDbCommand.cs
- DataSourceControlBuilder.cs
- ContainerUIElement3D.cs
- TcpClientChannel.cs
- SerializerProvider.cs
- SessionParameter.cs
- XmlSchemaSimpleTypeUnion.cs
- SessionStateContainer.cs
- XmlSchemaSet.cs
- HttpAsyncResult.cs
- MetabaseReader.cs
- ApplyHostConfigurationBehavior.cs
- StreamGeometry.cs
- RefType.cs
- AttributeProviderAttribute.cs
- _UriSyntax.cs
- RequestTimeoutManager.cs
- LineUtil.cs
- EventLevel.cs
- TextCollapsingProperties.cs
- ConstructorExpr.cs
- DataBindEngine.cs
- basemetadatamappingvisitor.cs
- LocalizedNameDescriptionPair.cs
- DbConnectionPoolCounters.cs
- DeferredElementTreeState.cs
- CodeMemberField.cs
- BufferedStream.cs
- WsdlWriter.cs
- DetailsViewAutoFormat.cs
- Label.cs
- Preprocessor.cs
- AppDomain.cs
- Vector3DAnimationBase.cs
- securitymgrsite.cs
- VisualBrush.cs
- InputLangChangeRequestEvent.cs
- CodeSubDirectory.cs
- InputDevice.cs
- SQLGuid.cs
- ConnectionManagementSection.cs
- ProxyWebPart.cs
- DrawingGroup.cs
- XmlSchemaGroup.cs
- TableNameAttribute.cs
- LineVisual.cs
- LoginView.cs
- Mutex.cs
- EffectiveValueEntry.cs
- PropertyChangedEventArgs.cs
- ChannelManager.cs
- ScrollViewer.cs
- FrameworkRichTextComposition.cs
- WebResourceAttribute.cs
- basevalidator.cs
- ProcessStartInfo.cs
- FlatButtonAppearance.cs
- BinaryParser.cs
- XmlSerializer.cs
- ConfigXmlWhitespace.cs
- FileEnumerator.cs
- RowVisual.cs
- HashMembershipCondition.cs
- DetailsViewDeleteEventArgs.cs
- SqlExpressionNullability.cs
- StorageEntitySetMapping.cs
- CatalogPart.cs
- _LocalDataStore.cs
- NavigatorOutput.cs
- ContainerControlDesigner.cs
- Ray3DHitTestResult.cs
- PathFigureCollection.cs
- RSACryptoServiceProvider.cs
- PeerApplication.cs
- MetadataFile.cs
- BitmapMetadataEnumerator.cs
- SettingsBindableAttribute.cs
- KeyEventArgs.cs
- NavigatorInvalidBodyAccessException.cs
- NativeMethods.cs
- PrimaryKeyTypeConverter.cs
- IdentityValidationException.cs
- SafeRightsManagementHandle.cs
- HitTestFilterBehavior.cs
- BuildProvidersCompiler.cs
- SqlNamer.cs
- ActivityValidationServices.cs