Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Core.Presentation / System / Activities / Core / Presentation / MorphHelpers.cs / 1305376 / MorphHelpers.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Core.Presentation { using System; using System.Activities.Presentation.Model; using System.Activities.Presentation.Hosting; using System.ComponentModel; using Microsoft.VisualBasic.Activities; using System.Runtime; using System.Linq; using System.Activities.Expressions; using System.Activities.Presentation.View; using System.Collections.Generic; using System.Activities.ExpressionParser; using System.Diagnostics; using System.Globalization; using System.Diagnostics.CodeAnalysis; using System.Reflection; using System.IO; using System.Activities.Presentation; static class MorphHelpers { public static object ArgumentMorphHelper(ModelItem originalValue, ModelProperty newModelProperty) { Type expressionTypeArgument = newModelProperty.PropertyType.GetGenericArguments()[0]; return MorphArgument(originalValue, expressionTypeArgument); } internal static Argument MorphArgument(ModelItem originalValue, Type targetType) { Argument morphed = null; Argument original = (Argument)originalValue.GetCurrentValue(); if (original.Expression != null) { Type expressionType = original.Expression.GetType(); Type expressionGenericType = expressionType.IsGenericType ? expressionType.GetGenericTypeDefinition() : null; if (expressionGenericType != null) { string expressionText = ExpressionHelper.GetExpressionString(original.Expression); ActivityWithResult morphedExpression = ExpressionHelper.CreateExpression(targetType, expressionText, expressionGenericType == typeof(VisualBasicReference<>), null); morphed = Argument.Create(targetType, original.Direction); morphed.Expression = morphedExpression; } } return morphed; } public static object ActivityActionMorphHelper(ModelItem originalValue, ModelProperty newModelProperty) { Fx.Assert(newModelProperty.PropertyType.GetGenericArguments().Count() == 1, "This should only be applied for ActivityAction"); Type activityActionTypeArgument = newModelProperty.PropertyType.GetGenericArguments()[0]; Type activityActionType = typeof(ActivityAction<>).MakeGenericType(activityActionTypeArgument); object activityAction = Activator.CreateInstance(activityActionType); ModelItem morphed = ModelFactory.CreateItem(originalValue.GetEditingContext(), activityAction); ModelItem originalActivityActionArgument = originalValue.Properties[PropertyNames.ActionArgument].Value; if (originalActivityActionArgument != null) { Type variableType = typeof(DelegateInArgument<>).MakeGenericType(activityActionTypeArgument); DelegateInArgument iterationDelegateArgument = (DelegateInArgument)Activator.CreateInstance(variableType); iterationDelegateArgument.Name = (string)originalActivityActionArgument.Properties[PropertyNames.NameProperty].Value.GetCurrentValue(); morphed.Properties[PropertyNames.ActionArgument].SetValue(iterationDelegateArgument); } ModelItem originalActivityActionHandler = originalValue.Properties[PropertyNames.ActionHandler].Value; if (originalActivityActionHandler != null) { morphed.Properties[PropertyNames.ActionHandler].SetValue(originalActivityActionHandler); originalValue.Properties[PropertyNames.ActionHandler].SetValue(null); } return morphed; } } } // 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
- RSAPKCS1SignatureDeformatter.cs
- SqlInternalConnectionSmi.cs
- CodeExporter.cs
- StorageMappingFragment.cs
- BindMarkupExtensionSerializer.cs
- FamilyTypefaceCollection.cs
- WindowsStreamSecurityBindingElement.cs
- Visitor.cs
- Page.cs
- IApplicationTrustManager.cs
- ObjectDataSourceEventArgs.cs
- DrawListViewColumnHeaderEventArgs.cs
- SecondaryViewProvider.cs
- BlurEffect.cs
- XmlParserContext.cs
- SqlMethodAttribute.cs
- WebGetAttribute.cs
- PlatformCulture.cs
- HotCommands.cs
- AsyncResult.cs
- BindingValueChangedEventArgs.cs
- LongTypeConverter.cs
- InkCanvasSelectionAdorner.cs
- Currency.cs
- Facet.cs
- TemplateControl.cs
- DynamicUpdateCommand.cs
- TabControlEvent.cs
- DefaultParameterValueAttribute.cs
- HttpModuleCollection.cs
- ToolTipService.cs
- versioninfo.cs
- ShapingWorkspace.cs
- CodeTypeMemberCollection.cs
- ValueCollectionParameterReader.cs
- SR.cs
- ThreadStartException.cs
- BasicKeyConstraint.cs
- SqlInternalConnectionTds.cs
- TextEndOfParagraph.cs
- Ray3DHitTestResult.cs
- InvalidateEvent.cs
- tooltip.cs
- RichTextBox.cs
- TransactionFlowAttribute.cs
- PackageProperties.cs
- FileDialog.cs
- DataTableNewRowEvent.cs
- NullRuntimeConfig.cs
- SizeChangedEventArgs.cs
- ErrorHandler.cs
- TreeViewBindingsEditorForm.cs
- ThicknessKeyFrameCollection.cs
- ChannelCacheSettings.cs
- HasCopySemanticsAttribute.cs
- BaseValidator.cs
- Utility.cs
- GrammarBuilder.cs
- ObjectDataSourceChooseMethodsPanel.cs
- TransformerInfo.cs
- ECDiffieHellmanPublicKey.cs
- SqlTypeConverter.cs
- FormViewDesigner.cs
- IsolatedStorageException.cs
- GeometryDrawing.cs
- SHA512.cs
- Keywords.cs
- ParallelTimeline.cs
- CompositionCommandSet.cs
- TaskExtensions.cs
- XmlSerializer.cs
- Control.cs
- ControlBuilder.cs
- TypeConverter.cs
- HttpRuntime.cs
- DeviceSpecificChoiceCollection.cs
- BulletChrome.cs
- XhtmlBasicCalendarAdapter.cs
- DoubleAnimationClockResource.cs
- WindowHideOrCloseTracker.cs
- PolicyReader.cs
- UrlPath.cs
- JapaneseCalendar.cs
- PointConverter.cs
- CodeGotoStatement.cs
- CqlParserHelpers.cs
- PenLineJoinValidation.cs
- FunctionQuery.cs
- PageCache.cs
- EditingCommands.cs
- OptimalTextSource.cs
- PluralizationService.cs
- Context.cs
- ResourcesGenerator.cs
- DocumentsTrace.cs
- HttpSysSettings.cs
- SizeConverter.cs
- TableRow.cs
- XMLSchema.cs
- AxHostDesigner.cs