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
- PrintPreviewControl.cs
- OpacityConverter.cs
- TransactionScope.cs
- DebugView.cs
- WindowsGrip.cs
- OrderPreservingMergeHelper.cs
- TextSelectionProcessor.cs
- HtmlElementErrorEventArgs.cs
- IInstanceContextProvider.cs
- ElementHost.cs
- DataGridViewColumnConverter.cs
- SessionEndedEventArgs.cs
- SamlSubject.cs
- MethodRental.cs
- GenericRootAutomationPeer.cs
- DeploymentExceptionMapper.cs
- ListViewGroupConverter.cs
- PackageStore.cs
- XmlSchemaImport.cs
- ConvertEvent.cs
- TreeView.cs
- DataGridViewColumnTypePicker.cs
- DocumentXmlWriter.cs
- RegexStringValidator.cs
- XmlNodeChangedEventManager.cs
- Compress.cs
- DynamicQueryableWrapper.cs
- TaiwanCalendar.cs
- CompilerErrorCollection.cs
- ZoomPercentageConverter.cs
- XmlDataSource.cs
- Trace.cs
- XmlToDatasetMap.cs
- ExpressionBindingCollection.cs
- PreviewKeyDownEventArgs.cs
- AuthorizationPolicyTypeElementCollection.cs
- SystemIPAddressInformation.cs
- ExtenderProviderService.cs
- BufferBuilder.cs
- StandardCommands.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- XmlKeywords.cs
- BamlTreeMap.cs
- AnnotationObservableCollection.cs
- OleDragDropHandler.cs
- WinEventTracker.cs
- DataGridViewBand.cs
- IndependentAnimationStorage.cs
- Rule.cs
- EDesignUtil.cs
- ChannelManager.cs
- DesignerActionHeaderItem.cs
- XmlILStorageConverter.cs
- Accessors.cs
- CallbackHandler.cs
- XmlSignatureProperties.cs
- RepeaterItemCollection.cs
- DataGridViewLinkCell.cs
- TemplatedWizardStep.cs
- EncodingDataItem.cs
- DataSourceControlBuilder.cs
- MenuItemBindingCollection.cs
- HeaderFilter.cs
- Animatable.cs
- TreeNodeBindingCollection.cs
- WebPartDisplayModeCollection.cs
- connectionpool.cs
- Win32MouseDevice.cs
- Serialization.cs
- ToolboxDataAttribute.cs
- InternalConfigRoot.cs
- ContentWrapperAttribute.cs
- MemberMaps.cs
- Point3DCollectionConverter.cs
- D3DImage.cs
- ProfilePropertySettingsCollection.cs
- StringExpressionSet.cs
- UnmanagedMarshal.cs
- SqlBinder.cs
- GridItem.cs
- TextBoxBase.cs
- ObjectKeyFrameCollection.cs
- webeventbuffer.cs
- StatusBarPanel.cs
- CallTemplateAction.cs
- DataListItemCollection.cs
- RouteItem.cs
- XPathPatternBuilder.cs
- MultiSelector.cs
- DynamicContractTypeBuilder.cs
- MessageContractExporter.cs
- ControlParameter.cs
- CommandHelpers.cs
- InputScopeConverter.cs
- ProxyWebPartManagerDesigner.cs
- FontFamilyValueSerializer.cs
- EventToken.cs
- ChannelParameterCollection.cs
- CodePrimitiveExpression.cs
- ConfigurationManagerInternalFactory.cs