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
- _LocalDataStoreMgr.cs
- IndexedEnumerable.cs
- GeometryDrawing.cs
- QueryNode.cs
- xamlnodes.cs
- ParseHttpDate.cs
- StringToken.cs
- TdsParserSafeHandles.cs
- Utility.cs
- LocalTransaction.cs
- IdentityModelDictionary.cs
- ServiceReference.cs
- SizeConverter.cs
- TemplatedWizardStep.cs
- Matrix3D.cs
- ClientTargetCollection.cs
- ArglessEventHandlerProxy.cs
- LinkedResourceCollection.cs
- DbParameterCollectionHelper.cs
- GeneralTransform3D.cs
- ImageFormatConverter.cs
- IndexedEnumerable.cs
- GAC.cs
- SecureStringHasher.cs
- BuiltInPermissionSets.cs
- HMACSHA256.cs
- BufferedGraphicsManager.cs
- JournalEntry.cs
- HMACSHA1.cs
- Certificate.cs
- ConnectionPoolManager.cs
- MemberAccessException.cs
- ExceptionUtility.cs
- MenuScrollingVisibilityConverter.cs
- EmbossBitmapEffect.cs
- WinInetCache.cs
- EraserBehavior.cs
- PtsHost.cs
- DependsOnAttribute.cs
- SSmlParser.cs
- SolidColorBrush.cs
- XPathMessageFilterElementComparer.cs
- Select.cs
- TableHeaderCell.cs
- UseLicense.cs
- DataColumn.cs
- ParsedAttributeCollection.cs
- ToolStripContainer.cs
- Debugger.cs
- AdornerDecorator.cs
- _BaseOverlappedAsyncResult.cs
- XmlUnspecifiedAttribute.cs
- SocketPermission.cs
- BamlLocalizationDictionary.cs
- VisualBrush.cs
- PropertyInformation.cs
- SplitterPanel.cs
- UntrustedRecipientException.cs
- DbSourceParameterCollection.cs
- XmlEncoding.cs
- RadioButtonRenderer.cs
- XmlWriterSettings.cs
- ProcessActivityTreeOptions.cs
- ListView.cs
- Attributes.cs
- ManipulationStartedEventArgs.cs
- RulePatternOps.cs
- ModelItemDictionary.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- Translator.cs
- XmlImplementation.cs
- ToolStripDropDownButton.cs
- SudsParser.cs
- UrlRoutingHandler.cs
- PaintValueEventArgs.cs
- TextTreeTextElementNode.cs
- IntSecurity.cs
- XmlUnspecifiedAttribute.cs
- MutexSecurity.cs
- Part.cs
- BrowserTree.cs
- HebrewNumber.cs
- SpecialNameAttribute.cs
- ObjectDataSourceMethodEventArgs.cs
- MetadataArtifactLoaderFile.cs
- MemberAccessException.cs
- OptionalColumn.cs
- ScrollEventArgs.cs
- WebPartCancelEventArgs.cs
- SectionUpdates.cs
- VariantWrapper.cs
- OutputScopeManager.cs
- RunInstallerAttribute.cs
- MetadataSerializer.cs
- RedBlackList.cs
- Substitution.cs
- NullRuntimeConfig.cs
- ResourcePropertyMemberCodeDomSerializer.cs
- TextWriterTraceListener.cs
- PingOptions.cs