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
- InnerItemCollectionView.cs
- DataGridViewColumnEventArgs.cs
- PerformanceCounterPermissionEntryCollection.cs
- InputLanguageEventArgs.cs
- TextElementEnumerator.cs
- PrimarySelectionAdorner.cs
- EpmContentSerializer.cs
- CachedBitmap.cs
- ComPlusDiagnosticTraceSchemas.cs
- TreeBuilder.cs
- SqlTypeSystemProvider.cs
- XmlConvert.cs
- SoapSchemaExporter.cs
- CellParagraph.cs
- FrameworkElementFactory.cs
- WebPartActionVerb.cs
- BigIntegerStorage.cs
- CommandSet.cs
- CaseExpr.cs
- InstanceLockedException.cs
- FormViewRow.cs
- BamlRecords.cs
- RegisteredScript.cs
- ValueTypeFieldReference.cs
- ExternalException.cs
- PhysicalOps.cs
- PeerChannelListener.cs
- EmptyCollection.cs
- SslStreamSecurityBindingElement.cs
- ZipArchive.cs
- Evidence.cs
- SurrogateSelector.cs
- RectAnimationUsingKeyFrames.cs
- GPStream.cs
- ExpressionParser.cs
- BinaryFormatterWriter.cs
- AbandonedMutexException.cs
- GregorianCalendarHelper.cs
- DtdParser.cs
- ToolBarButtonClickEvent.cs
- AnimationClock.cs
- Pts.cs
- SoapSchemaExporter.cs
- XmlSchemaValidator.cs
- GeometryCombineModeValidation.cs
- DesignerVerb.cs
- ADMembershipProvider.cs
- LayoutEvent.cs
- UrlAuthorizationModule.cs
- LinearGradientBrush.cs
- SafeBitVector32.cs
- HandledMouseEvent.cs
- ScrollEvent.cs
- StreamBodyWriter.cs
- FormatterConverter.cs
- ConfigurationValidatorBase.cs
- SqlDataSourceSelectingEventArgs.cs
- Solver.cs
- DodSequenceMerge.cs
- TrackingProfileDeserializationException.cs
- WorkflowInstanceProvider.cs
- VariableQuery.cs
- VersionedStreamOwner.cs
- TabItem.cs
- BuildDependencySet.cs
- BufferModesCollection.cs
- ComponentEvent.cs
- WindowsListViewItemCheckBox.cs
- OracleBoolean.cs
- DragEventArgs.cs
- XmlSchemaObject.cs
- DomainConstraint.cs
- ListDictionary.cs
- PropertyExpression.cs
- ValidatorCollection.cs
- RelOps.cs
- PrintDocument.cs
- MinMaxParagraphWidth.cs
- DataTableCollection.cs
- ProfileEventArgs.cs
- IssuedTokenClientBehaviorsElement.cs
- DateTimeStorage.cs
- GenericParameterDataContract.cs
- DataSourceCache.cs
- SyndicationContent.cs
- QilPatternVisitor.cs
- ArraySortHelper.cs
- AttributeProviderAttribute.cs
- StatusBar.cs
- DataListCommandEventArgs.cs
- HMAC.cs
- CompressedStack.cs
- CodeGotoStatement.cs
- KeyboardNavigation.cs
- TextTreePropertyUndoUnit.cs
- XmlAttribute.cs
- HandledMouseEvent.cs
- DataGridViewToolTip.cs
- DataListItemEventArgs.cs
- HyperlinkAutomationPeer.cs