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
- SectionInformation.cs
- WebSysDisplayNameAttribute.cs
- TriggerActionCollection.cs
- SettingsPropertyWrongTypeException.cs
- OleDbSchemaGuid.cs
- login.cs
- BuildDependencySet.cs
- ProcessModuleDesigner.cs
- PassportAuthenticationModule.cs
- ImplicitInputBrush.cs
- SqlBuilder.cs
- TextModifier.cs
- ResetableIterator.cs
- SHA1.cs
- TreeNodeCollection.cs
- TableCell.cs
- TextTreeExtractElementUndoUnit.cs
- RegexStringValidator.cs
- UnionExpr.cs
- FontSizeConverter.cs
- querybuilder.cs
- AppSecurityManager.cs
- SuppressMessageAttribute.cs
- BamlLocalizableResource.cs
- UseManagedPresentationElement.cs
- DelegateArgumentValue.cs
- ScriptControlDescriptor.cs
- ParseHttpDate.cs
- NamespaceEmitter.cs
- DynamicILGenerator.cs
- SqlCommandAsyncResult.cs
- ListViewInsertedEventArgs.cs
- ServicesUtilities.cs
- Int16Animation.cs
- DesignerExtenders.cs
- Translator.cs
- ReadOnlyDataSourceView.cs
- AuthorizationRule.cs
- AnimationStorage.cs
- DecoderReplacementFallback.cs
- GradientBrush.cs
- Single.cs
- AssertHelper.cs
- DataGridViewColumnCollection.cs
- RegexCompilationInfo.cs
- DelegatedStream.cs
- ApplicationTrust.cs
- Rotation3DAnimationUsingKeyFrames.cs
- NativeWindow.cs
- QueueAccessMode.cs
- ClientEventManager.cs
- WebPartTransformer.cs
- PreApplicationStartMethodAttribute.cs
- TargetInvocationException.cs
- RectAnimationUsingKeyFrames.cs
- BidirectionalDictionary.cs
- NativeMethods.cs
- SegmentInfo.cs
- CodeCommentStatementCollection.cs
- AbandonedMutexException.cs
- CollectionConverter.cs
- ScopelessEnumAttribute.cs
- ManagementBaseObject.cs
- ObjectStorage.cs
- CodePageEncoding.cs
- isolationinterop.cs
- _SafeNetHandles.cs
- JoinElimination.cs
- TagPrefixAttribute.cs
- RegexCompiler.cs
- NativeMethodsCLR.cs
- TextDecorationCollectionConverter.cs
- HttpListenerResponse.cs
- IntermediatePolicyValidator.cs
- Query.cs
- BasicKeyConstraint.cs
- NullableDoubleAverageAggregationOperator.cs
- BehaviorDragDropEventArgs.cs
- PropertyItemInternal.cs
- DataGridViewHeaderCell.cs
- BufferBuilder.cs
- DeploymentExceptionMapper.cs
- TraceContextEventArgs.cs
- ToolstripProfessionalRenderer.cs
- PropertyValueChangedEvent.cs
- TargetControlTypeCache.cs
- log.cs
- ExceptionUtil.cs
- StringBlob.cs
- OverflowException.cs
- GPRECTF.cs
- DbExpressionRules.cs
- XpsDigitalSignature.cs
- OracleLob.cs
- OrderPreservingSpoolingTask.cs
- ServiceDescriptionImporter.cs
- MenuItemBindingCollection.cs
- NullRuntimeConfig.cs
- BoolExpressionVisitors.cs
- TimeSpanStorage.cs