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
- DetailsViewRowCollection.cs
- HttpTransportSecurity.cs
- ListControlActionList.cs
- VersionConverter.cs
- OptimisticConcurrencyException.cs
- VSWCFServiceContractGenerator.cs
- DecimalAnimationBase.cs
- DirectoryInfo.cs
- Identifier.cs
- PageResolution.cs
- FontWeight.cs
- QuotedPrintableStream.cs
- TreeViewImageIndexConverter.cs
- HttpPostedFile.cs
- PopOutPanel.cs
- IntSecurity.cs
- DbMetaDataFactory.cs
- NullReferenceException.cs
- ClientSponsor.cs
- LowerCaseStringConverter.cs
- ResourceCategoryAttribute.cs
- ProxyWebPartConnectionCollection.cs
- Array.cs
- FocusChangedEventArgs.cs
- SafeNativeMethods.cs
- UiaCoreApi.cs
- IISUnsafeMethods.cs
- AspNetHostingPermission.cs
- IPPacketInformation.cs
- XslAstAnalyzer.cs
- SqlMethodAttribute.cs
- SharedStatics.cs
- VectorCollectionConverter.cs
- AddingNewEventArgs.cs
- FilterElement.cs
- DBAsyncResult.cs
- XmlDocumentSchema.cs
- VirtualDirectoryMappingCollection.cs
- XmlSchemaValidationException.cs
- EntityContainerAssociationSetEnd.cs
- WindowInteropHelper.cs
- WindowHideOrCloseTracker.cs
- CodeDomDecompiler.cs
- JapaneseLunisolarCalendar.cs
- UnmanagedHandle.cs
- ColorMap.cs
- TransformGroup.cs
- UshortList2.cs
- ExpressionBuilder.cs
- contentDescriptor.cs
- XmlImplementation.cs
- WebPartEventArgs.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- SmiConnection.cs
- TypeConverterValueSerializer.cs
- TrustDriver.cs
- SchemaManager.cs
- RuntimeArgumentHandle.cs
- RootBrowserWindowAutomationPeer.cs
- PropertySourceInfo.cs
- StorageEntityContainerMapping.cs
- KeyValueConfigurationCollection.cs
- _OSSOCK.cs
- AvTrace.cs
- ToolZoneDesigner.cs
- FileReservationCollection.cs
- HttpPostProtocolReflector.cs
- KnowledgeBase.cs
- FilterQuery.cs
- WebDisplayNameAttribute.cs
- RowSpanVector.cs
- SiteMapNode.cs
- DataGridViewColumnConverter.cs
- BitVector32.cs
- GraphicsPath.cs
- DelegateCompletionCallbackWrapper.cs
- SimpleHandlerBuildProvider.cs
- AbstractExpressions.cs
- CacheMemory.cs
- BinaryReader.cs
- RequestNavigateEventArgs.cs
- MultiAsyncResult.cs
- ProcessInfo.cs
- Point3DCollection.cs
- AnnotationService.cs
- JsonDeserializer.cs
- XmlLanguage.cs
- DesignerLoader.cs
- Attachment.cs
- WsatServiceAddress.cs
- ListCollectionView.cs
- XPathNavigatorException.cs
- WindowsFont.cs
- XPathNodeList.cs
- XmlHierarchicalDataSourceView.cs
- SerialErrors.cs
- RoleService.cs
- HiddenField.cs
- Module.cs
- HttpModuleCollection.cs