Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / XamlIntegration / FuncTypeConverter.cs / 1305376 / FuncTypeConverter.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.XamlIntegration { using System; using System.ComponentModel; using System.Globalization; using System.Reflection; using System.Runtime; using System.Windows.Markup; using System.Xaml; public class FuncDeferringLoader : XamlDeferringLoader { public override object Load(XamlReader xamlReader, IServiceProvider context) { IXamlObjectWriterFactory objectWriterFactory = context.GetService(typeof(IXamlObjectWriterFactory)) as IXamlObjectWriterFactory; IProvideValueTarget provideValueService = context.GetService(typeof(IProvideValueTarget)) as IProvideValueTarget; Type propertyType = null; // // IProvideValueTarget.TargetProperty can return DP, Attached Property or MemberInfo for clr property // In this case it should always be a regular clr property here - we are always targeting Activity.Body. PropertyInfo propertyInfo = provideValueService.TargetProperty as PropertyInfo; if (propertyInfo != null) { propertyType = propertyInfo.PropertyType; } object instance = Activator.CreateInstance( typeof(FuncFactory<>).MakeGenericType(propertyType.GetGenericArguments()), objectWriterFactory, xamlReader); return Delegate.CreateDelegate(propertyType, instance, instance.GetType().GetMethod("Evaluate")); } public override XamlReader Save(object value, IServiceProvider serviceProvider) { throw FxTrace.Exception.AsError(new NotSupportedException(SR.SavingActivityToXamlNotSupported)); } abstract class FuncFactory { public XamlNodeList Nodes { get; set; } } class FuncFactory: FuncFactory { IXamlObjectWriterFactory objectWriterFactory; public FuncFactory(IXamlObjectWriterFactory objectWriterFactory, XamlReader reader) { this.objectWriterFactory = objectWriterFactory; this.Nodes = new XamlNodeList(reader.SchemaContext); XamlServices.Transform(reader, this.Nodes.Writer); } public T Evaluate() { XamlObjectWriter writer = this.objectWriterFactory.GetXamlObjectWriter(new XamlObjectWriterSettings()); XamlServices.Transform(this.Nodes.GetReader(), writer); return (T)writer.Result; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- IPAddressCollection.cs
- COM2Enum.cs
- ListDictionaryInternal.cs
- precedingsibling.cs
- cookie.cs
- CreateUserWizard.cs
- HttpModuleCollection.cs
- AuthenticateEventArgs.cs
- DirtyTextRange.cs
- LeftCellWrapper.cs
- SiteMapProvider.cs
- CompareValidator.cs
- AssemblyInfo.cs
- ErrorFormatterPage.cs
- PreloadHost.cs
- CompositeClientFormatter.cs
- PTUtility.cs
- EditingCommands.cs
- MessageSmuggler.cs
- SectionInformation.cs
- HttpServerUtilityWrapper.cs
- SecurityTokenProvider.cs
- EntityCollection.cs
- FixedTextSelectionProcessor.cs
- DefaultClaimSet.cs
- GetPolicyDetailsRequest.cs
- OutputScopeManager.cs
- SimplePropertyEntry.cs
- RegisteredExpandoAttribute.cs
- EntityContainerEntitySetDefiningQuery.cs
- QilInvokeEarlyBound.cs
- ScriptControl.cs
- WorkflowViewManager.cs
- DateTimePicker.cs
- Pair.cs
- IDictionary.cs
- StackBuilderSink.cs
- Transform.cs
- PartialArray.cs
- WindowsGraphicsCacheManager.cs
- UInt16Converter.cs
- DataGridViewComboBoxColumnDesigner.cs
- XmlLinkedNode.cs
- MergeFailedEvent.cs
- HttpListenerRequest.cs
- AnnotationHighlightLayer.cs
- ICollection.cs
- ParallelRangeManager.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- XmlTypeMapping.cs
- PathGeometry.cs
- DependencyPropertyChangedEventArgs.cs
- LoginAutoFormat.cs
- SelectionEditingBehavior.cs
- ContainerSelectorActiveEvent.cs
- AlphabetConverter.cs
- Debug.cs
- VisualBasicSettings.cs
- XmlSchemaSequence.cs
- SqlRetyper.cs
- ArrayHelper.cs
- RadioButtonList.cs
- WsatAdminException.cs
- IdentityModelDictionary.cs
- DotExpr.cs
- CompositeActivityDesigner.cs
- OdbcDataReader.cs
- FormatSettings.cs
- StreamHelper.cs
- CacheForPrimitiveTypes.cs
- ECDsa.cs
- NetworkAddressChange.cs
- CodeMemberEvent.cs
- HtmlCommandAdapter.cs
- Boolean.cs
- TextSimpleMarkerProperties.cs
- ToolStripContainer.cs
- AssociationTypeEmitter.cs
- ColorBlend.cs
- FontUnitConverter.cs
- TypedElement.cs
- ButtonBaseAutomationPeer.cs
- DataContractSerializerServiceBehavior.cs
- XmlFileEditor.cs
- DebugView.cs
- BaseTreeIterator.cs
- ToolStripItemImageRenderEventArgs.cs
- ComboBox.cs
- RenderingEventArgs.cs
- HtmlControl.cs
- ButtonStandardAdapter.cs
- XPathExpr.cs
- ResourceBinder.cs
- DeriveBytes.cs
- ObjectItemAssemblyLoader.cs
- RegexRunnerFactory.cs
- Collection.cs
- FunctionUpdateCommand.cs
- XmlTextReaderImplHelpers.cs
- BreakRecordTable.cs