Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------- // 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 List GetVariables(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
- WaitHandle.cs
- CngProperty.cs
- PropertyChangedEventManager.cs
- DeviceContext.cs
- ConfigXmlElement.cs
- BookmarkTable.cs
- InstanceDataCollectionCollection.cs
- ExtentCqlBlock.cs
- TemplatedWizardStep.cs
- DirectionalLight.cs
- SspiSafeHandles.cs
- Set.cs
- HMACSHA256.cs
- ObsoleteAttribute.cs
- ObservableDictionary.cs
- ReturnType.cs
- CultureInfoConverter.cs
- VariantWrapper.cs
- WindowsMenu.cs
- GridItemPattern.cs
- AsyncStreamReader.cs
- ClientSponsor.cs
- Attributes.cs
- AudioSignalProblemOccurredEventArgs.cs
- Helper.cs
- DataGridViewElement.cs
- DataGridCaption.cs
- Stream.cs
- TypedTableBaseExtensions.cs
- DocumentViewerHelper.cs
- adornercollection.cs
- Soap12ServerProtocol.cs
- AssemblyInfo.cs
- DiagnosticsConfigurationHandler.cs
- ContentPlaceHolder.cs
- ElementHost.cs
- Task.cs
- DbBuffer.cs
- ListViewGroupItemCollection.cs
- DbConnectionInternal.cs
- DataContract.cs
- ExpressionEditorAttribute.cs
- MouseCaptureWithinProperty.cs
- ClientRoleProvider.cs
- PrinterResolution.cs
- SiteMapHierarchicalDataSourceView.cs
- ConfigUtil.cs
- UserControlAutomationPeer.cs
- IApplicationTrustManager.cs
- TextParagraph.cs
- GroupItemAutomationPeer.cs
- ScaleTransform3D.cs
- CodeDOMUtility.cs
- NavigationProperty.cs
- MsmqBindingMonitor.cs
- CheckStoreFileValidityRequest.cs
- ResourceExpressionEditorSheet.cs
- RightsManagementInformation.cs
- PointHitTestResult.cs
- DataGridView.cs
- UnmanagedMarshal.cs
- AuthenticationModulesSection.cs
- WizardStepBase.cs
- DockAndAnchorLayout.cs
- DynamicResourceExtensionConverter.cs
- AdornerHitTestResult.cs
- ServiceInfo.cs
- SchemaTypeEmitter.cs
- DynamicPropertyHolder.cs
- XPathArrayIterator.cs
- LeaseManager.cs
- PreviewKeyDownEventArgs.cs
- ReadOnlyCollectionBase.cs
- MarkupObject.cs
- CollectionContainer.cs
- UniqueIdentifierService.cs
- QueuedDeliveryRequirementsMode.cs
- FontCacheUtil.cs
- WhileDesigner.cs
- HttpCookiesSection.cs
- TypeGeneratedEventArgs.cs
- XomlDesignerLoader.cs
- Site.cs
- CheckedListBox.cs
- TemplateField.cs
- WithStatement.cs
- TimeManager.cs
- VisualStates.cs
- ErrorsHelper.cs
- httpstaticobjectscollection.cs
- DataRecordInfo.cs
- HwndTarget.cs
- BypassElement.cs
- Animatable.cs
- ManipulationCompletedEventArgs.cs
- Parser.cs
- MethodToken.cs
- Rijndael.cs
- ScriptResourceInfo.cs
- RenderOptions.cs