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
- DispatchWrapper.cs
- DbConnectionPoolCounters.cs
- ZipArchive.cs
- XmlSchemaObject.cs
- DoubleKeyFrameCollection.cs
- OptimalTextSource.cs
- FormatSettings.cs
- BamlTreeMap.cs
- NoneExcludedImageIndexConverter.cs
- CornerRadius.cs
- IssuedTokenServiceElement.cs
- _ScatterGatherBuffers.cs
- RuleInfoComparer.cs
- DesignBinding.cs
- HtmlWindowCollection.cs
- MachineSettingsSection.cs
- DockPattern.cs
- NumberFunctions.cs
- EmbeddedMailObject.cs
- DropSource.cs
- BridgeDataRecord.cs
- AdRotatorDesigner.cs
- InfiniteIntConverter.cs
- Light.cs
- ResourceAssociationType.cs
- RuntimeArgument.cs
- MemberInitExpression.cs
- SmtpTransport.cs
- CellLabel.cs
- Visitors.cs
- WsatAdminException.cs
- GridViewUpdatedEventArgs.cs
- TransactedReceiveScope.cs
- DataSetMappper.cs
- EdmProperty.cs
- SponsorHelper.cs
- DataListItem.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- QilVisitor.cs
- Model3DGroup.cs
- ServiceModelPerformanceCounters.cs
- UTF8Encoding.cs
- ComponentConverter.cs
- FixedPosition.cs
- CodeParameterDeclarationExpressionCollection.cs
- PrimarySelectionGlyph.cs
- DbMetaDataFactory.cs
- DirectoryRedirect.cs
- FormsAuthenticationModule.cs
- MailAddressCollection.cs
- DataGridTextBox.cs
- DesignerCategoryAttribute.cs
- ProfileSettings.cs
- RuntimeConfigurationRecord.cs
- DbModificationClause.cs
- ConfigurationElementProperty.cs
- PinnedBufferMemoryStream.cs
- SpellerHighlightLayer.cs
- VariableElement.cs
- StateRuntime.cs
- SendMailErrorEventArgs.cs
- SurrogateDataContract.cs
- ImportedNamespaceContextItem.cs
- ExpressionBindings.cs
- WebPartDisplayModeCancelEventArgs.cs
- TextSelectionProcessor.cs
- FunctionMappingTranslator.cs
- TextOnlyOutput.cs
- Vector3D.cs
- SqlServer2KCompatibilityCheck.cs
- Menu.cs
- BindingMAnagerBase.cs
- TextBoxBase.cs
- RectangleHotSpot.cs
- Executor.cs
- MLangCodePageEncoding.cs
- WebPart.cs
- TCEAdapterGenerator.cs
- CompilerScopeManager.cs
- TemplateColumn.cs
- HMAC.cs
- KeyedHashAlgorithm.cs
- XPathDocumentNavigator.cs
- DbMetaDataColumnNames.cs
- SamlEvidence.cs
- sqlnorm.cs
- VerifyHashRequest.cs
- RelationshipConstraintValidator.cs
- WriteableBitmap.cs
- DoubleUtil.cs
- WebPartVerb.cs
- RegionData.cs
- DataContractSerializer.cs
- FileStream.cs
- SmtpMail.cs
- Compiler.cs
- ProfileManager.cs
- AdapterDictionary.cs
- Decoder.cs
- DuplicateDetector.cs