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
- EmptyElement.cs
- FilterEventArgs.cs
- EdmFunctionAttribute.cs
- AccessViolationException.cs
- ParamArrayAttribute.cs
- VersionPair.cs
- grammarelement.cs
- SafeProcessHandle.cs
- ErrorRuntimeConfig.cs
- KeySpline.cs
- PrintDocument.cs
- Util.cs
- FunctionQuery.cs
- SiteMapNode.cs
- ResourceSetExpression.cs
- CommandBindingCollection.cs
- DetailsViewUpdateEventArgs.cs
- ProfilePropertySettings.cs
- AttributeEmitter.cs
- SelectionItemPattern.cs
- odbcmetadatafactory.cs
- TextRunCache.cs
- GroupBoxRenderer.cs
- SecureStringHasher.cs
- PropertyNames.cs
- MailMessage.cs
- xamlnodes.cs
- HostedImpersonationContext.cs
- ToolbarAUtomationPeer.cs
- HttpServerVarsCollection.cs
- ClientTargetSection.cs
- HtmlMeta.cs
- NativeDirectoryServicesQueryAPIs.cs
- PerformanceCounterManager.cs
- SecurityDescriptor.cs
- SqlGenerator.cs
- XsdDataContractImporter.cs
- DragDrop.cs
- InstancePersistenceException.cs
- CustomError.cs
- Table.cs
- Table.cs
- NativeRightsManagementAPIsStructures.cs
- HelpEvent.cs
- ReflectionPermission.cs
- ScriptRegistrationManager.cs
- TcpServerChannel.cs
- FixedPageStructure.cs
- XmlDataSourceDesigner.cs
- baseshape.cs
- XmlSchemaObject.cs
- ListBoxAutomationPeer.cs
- SelectorItemAutomationPeer.cs
- UnsafeNetInfoNativeMethods.cs
- XamlToRtfParser.cs
- FreezableOperations.cs
- RangeExpression.cs
- RelativeSource.cs
- PenThreadWorker.cs
- EditorAttribute.cs
- XNodeNavigator.cs
- PageCatalogPart.cs
- EpmContentSerializer.cs
- ScrollChrome.cs
- ListViewDeletedEventArgs.cs
- FunctionDetailsReader.cs
- QilStrConcat.cs
- XmlValidatingReaderImpl.cs
- ErrorWrapper.cs
- AppDomain.cs
- FixedSOMFixedBlock.cs
- EntitySetBase.cs
- RoutedPropertyChangedEventArgs.cs
- PropertyIDSet.cs
- BuildProviderAppliesToAttribute.cs
- CustomServiceCredentials.cs
- BulletedListEventArgs.cs
- counter.cs
- RegexFCD.cs
- AppDomainProtocolHandler.cs
- TableParaClient.cs
- CardSpaceException.cs
- TTSVoice.cs
- ContextProperty.cs
- _HeaderInfo.cs
- TextBounds.cs
- ForwardPositionQuery.cs
- QuaternionRotation3D.cs
- TableCell.cs
- CharEnumerator.cs
- WindowsTreeView.cs
- TableRow.cs
- Cursor.cs
- BatchParser.cs
- SortDescription.cs
- AnonymousIdentificationSection.cs
- RelationshipEnd.cs
- AlternateView.cs
- LambdaCompiler.Statements.cs
- Transform3DCollection.cs