Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / Xaml / ActivityBuilderHelper.cs / 1407647 / ActivityBuilderHelper.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation.Xaml { using System.Activities.Debugger; using System.Activities.Presentation.Model; using System.Collections.Generic; using System.ComponentModel; using System.Runtime; using System.Windows.Markup; internal class ActivityBuilderHelper { internal static bool IsActivityBuilderType(ModelItem modelItem) { if (null == modelItem) { throw FxTrace.Exception.AsError(new ArgumentNullException("modelItem")); } return modelItem.ItemType.IsAssignableFrom(typeof(ActivityBuilder)); } internal static ListGetVariables(object input) { if (null == input) { throw FxTrace.Exception.AsError(new ArgumentNullException("input")); } ModelItem astAsModelItem = input as ModelItem; ActivityBuilder instance = input as ActivityBuilder; if (null != astAsModelItem) { if (!astAsModelItem.ItemType.IsAssignableFrom(typeof(ActivityBuilder))) { throw FxTrace.Exception.AsError(new InvalidCastException(astAsModelItem.ItemType.FullName)); } instance = (ActivityBuilder)astAsModelItem.GetCurrentValue(); } else if (null == instance) { throw FxTrace.Exception.AsError(new InvalidCastException(input.GetType().FullName)); } List variables = new List (); foreach (DynamicActivityProperty property in instance.Properties) { if (property != null) { Variable autoVariable = GetVariableFromProperty(property); if (autoVariable != null) { variables.Add(autoVariable); } } } return variables; } internal static Variable GetVariableFromProperty(DynamicActivityProperty property) { Type variableType = null; Variable autoVariable = null; if (property.Type != null) { Type propertyType = property.Type; // if the property is an Argument create a variable of type T if (propertyType != null && typeof(Argument).IsAssignableFrom(propertyType)) { if (propertyType.IsGenericType) { variableType = propertyType.GetGenericArguments()[0]; } else { variableType = typeof(object); } } } if (variableType != null) { autoVariable = Variable.Create(property.Name, variableType, VariableModifiers.None); Argument argument = property.Value as Argument; if (argument != null) { autoVariable.Default = argument.Expression; } } return autoVariable; } } } // 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
- Pair.cs
- DownloadProgressEventArgs.cs
- HttpValueCollection.cs
- DataRow.cs
- ApplicationActivator.cs
- Update.cs
- Token.cs
- Substitution.cs
- SoapTypeAttribute.cs
- Regex.cs
- SolidBrush.cs
- entityreference_tresulttype.cs
- SHA384Cng.cs
- SecurityMode.cs
- sqlstateclientmanager.cs
- x509store.cs
- TableDetailsRow.cs
- ProxyWebPart.cs
- MetadataPropertyAttribute.cs
- SQLRoleProvider.cs
- SortFieldComparer.cs
- WindowsStatusBar.cs
- ButtonColumn.cs
- DataGridViewSelectedRowCollection.cs
- DisableDpiAwarenessAttribute.cs
- XmlSchemaImport.cs
- PageVisual.cs
- ControlCachePolicy.cs
- ListViewDesigner.cs
- Rect.cs
- HorizontalAlignConverter.cs
- CallInfo.cs
- ListSourceHelper.cs
- XmlSchemaValidationException.cs
- FixUp.cs
- DbMetaDataCollectionNames.cs
- FixedSOMFixedBlock.cs
- AsymmetricSignatureFormatter.cs
- BindingOperations.cs
- DataGridAutoFormat.cs
- UIElementParagraph.cs
- CryptoConfig.cs
- DrawingBrush.cs
- HttpHeaderCollection.cs
- KeyValueInternalCollection.cs
- TextBoxBase.cs
- SoapElementAttribute.cs
- OptimizerPatterns.cs
- AsyncOperationContext.cs
- ProvidersHelper.cs
- FileChangesMonitor.cs
- TimeSpanMinutesConverter.cs
- SqlDataSourceSelectingEventArgs.cs
- ObjectConverter.cs
- TagPrefixAttribute.cs
- Floater.cs
- SafeFindHandle.cs
- GridPatternIdentifiers.cs
- SessionIDManager.cs
- DesignerCategoryAttribute.cs
- FontEmbeddingManager.cs
- Selector.cs
- CapabilitiesAssignment.cs
- ECDiffieHellmanPublicKey.cs
- WindowsPrincipal.cs
- CompositionTarget.cs
- VSWCFServiceContractGenerator.cs
- EntitySetDataBindingList.cs
- TypeToken.cs
- ScrollViewerAutomationPeer.cs
- NeedSkipTokenVisitor.cs
- DbProviderServices.cs
- LayoutUtils.cs
- JoinCqlBlock.cs
- PointKeyFrameCollection.cs
- ChangeBlockUndoRecord.cs
- NetMsmqBinding.cs
- DataGridColumnHeaderAutomationPeer.cs
- PropertyGridView.cs
- DefaultTypeArgumentAttribute.cs
- SchemaLookupTable.cs
- AssemblyBuilderData.cs
- WpfWebRequestHelper.cs
- Journal.cs
- TextEvent.cs
- CellParagraph.cs
- ProcessHostConfigUtils.cs
- DrawingServices.cs
- UpdatePanel.cs
- ping.cs
- InvalidProgramException.cs
- RegistryKey.cs
- ServiceModelExtensionElement.cs
- FormDocumentDesigner.cs
- ColumnMapCopier.cs
- TabItemAutomationPeer.cs
- DoubleStorage.cs
- PersonalizationState.cs
- RectAnimationUsingKeyFrames.cs
- SafeNativeMethods.cs