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
- CompositeDispatchFormatter.cs
- QilInvokeLateBound.cs
- TraceEventCache.cs
- GraphicsPathIterator.cs
- IEnumerable.cs
- LicenseException.cs
- AssemblyNameUtility.cs
- CustomActivityDesigner.cs
- AttributeEmitter.cs
- HtmlDocument.cs
- _AutoWebProxyScriptWrapper.cs
- ScriptReferenceEventArgs.cs
- Menu.cs
- StatusBarPanelClickEvent.cs
- SmiEventSink.cs
- DropDownList.cs
- Section.cs
- Pair.cs
- ObjectReaderCompiler.cs
- Speller.cs
- EventEntry.cs
- DirtyTextRange.cs
- AccessDataSourceView.cs
- ColorConverter.cs
- MailDefinitionBodyFileNameEditor.cs
- ResourcesGenerator.cs
- WebBrowserContainer.cs
- GenerateHelper.cs
- ByteStreamMessage.cs
- DataProtectionSecurityStateEncoder.cs
- WindowsGrip.cs
- Not.cs
- ListViewInsertionMark.cs
- TableRowCollection.cs
- EdmToObjectNamespaceMap.cs
- ReadOnlyHierarchicalDataSource.cs
- MediaElement.cs
- FlowLayoutPanelDesigner.cs
- Sentence.cs
- MatrixUtil.cs
- ChannelTracker.cs
- UnknownWrapper.cs
- LayoutEngine.cs
- control.ime.cs
- RolePrincipal.cs
- CorrelationQueryBehavior.cs
- DataSourceProvider.cs
- UnsafeNativeMethodsMilCoreApi.cs
- CheckBoxPopupAdapter.cs
- TransformerConfigurationWizardBase.cs
- DataGridLength.cs
- PassportAuthenticationEventArgs.cs
- RegexWriter.cs
- CopyNamespacesAction.cs
- GuidConverter.cs
- LocalServiceSecuritySettingsElement.cs
- PartialCachingControl.cs
- RequestedSignatureDialog.cs
- DefaultTextStore.cs
- AnimationTimeline.cs
- SHA1.cs
- DataControlLinkButton.cs
- MailDefinition.cs
- XPathMultyIterator.cs
- HighlightComponent.cs
- Selection.cs
- GeometryHitTestParameters.cs
- DbExpressionBuilder.cs
- ContextMenu.cs
- PropertyIDSet.cs
- XmlSchemaAppInfo.cs
- ClientConfigPaths.cs
- OdbcPermission.cs
- XslTransform.cs
- AnimatedTypeHelpers.cs
- TemplateApplicationHelper.cs
- IDispatchConstantAttribute.cs
- StringUtil.cs
- SuppressMessageAttribute.cs
- VisualBasicReference.cs
- IdentifierService.cs
- BaseTemplateParser.cs
- PeerDuplexChannelListener.cs
- DebuggerAttributes.cs
- SendMailErrorEventArgs.cs
- MetafileHeaderEmf.cs
- RemotingException.cs
- HttpRawResponse.cs
- ListBoxChrome.cs
- ViewStateModeByIdAttribute.cs
- SecurityTokenException.cs
- ThemeDirectoryCompiler.cs
- TargetControlTypeCache.cs
- CompatibleComparer.cs
- HtmlContainerControl.cs
- HostTimeoutsElement.cs
- EDesignUtil.cs
- OleDbDataAdapter.cs
- SafeNativeMethodsOther.cs
- TableLayout.cs