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
- CroppedBitmap.cs
- LocalServiceSecuritySettings.cs
- AutomationPropertyInfo.cs
- SqlBuilder.cs
- MenuItem.cs
- XPathDocumentBuilder.cs
- CodeSubDirectoriesCollection.cs
- ConfigXmlElement.cs
- SafeBitVector32.cs
- AccessibleObject.cs
- BaseTemplateCodeDomTreeGenerator.cs
- ExpressionBuilder.cs
- AssemblyContextControlItem.cs
- ImageDrawing.cs
- HtmlInputRadioButton.cs
- BufferedReadStream.cs
- DataServiceBehavior.cs
- RangeValidator.cs
- ComEventsHelper.cs
- login.cs
- ProcessThreadDesigner.cs
- ShadowGlyph.cs
- SubMenuStyleCollection.cs
- WebContext.cs
- XhtmlTextWriter.cs
- ElasticEase.cs
- PermissionSet.cs
- _LocalDataStoreMgr.cs
- DispatcherEventArgs.cs
- CloseCryptoHandleRequest.cs
- ReadOnlyDataSourceView.cs
- CodeCatchClauseCollection.cs
- HandlerFactoryWrapper.cs
- ExpandableObjectConverter.cs
- XmlSerializer.cs
- RecognizedWordUnit.cs
- DataStorage.cs
- BufferedReadStream.cs
- FieldToken.cs
- Clipboard.cs
- XmlSchemaAnnotation.cs
- XPathDocumentNavigator.cs
- PathStreamGeometryContext.cs
- EDesignUtil.cs
- ReflectionPermission.cs
- CalendarDataBindingHandler.cs
- AddressingProperty.cs
- RuleSettingsCollection.cs
- TextSearch.cs
- TextTabProperties.cs
- EventLogException.cs
- TreeViewImageKeyConverter.cs
- TabControlEvent.cs
- SqlException.cs
- ScaleTransform3D.cs
- FlowDocumentReaderAutomationPeer.cs
- CodeIdentifiers.cs
- DataServiceBehavior.cs
- RectIndependentAnimationStorage.cs
- SemanticValue.cs
- SourceItem.cs
- TdsParameterSetter.cs
- Listbox.cs
- FontUnitConverter.cs
- PasswordPropertyTextAttribute.cs
- CodeTypeDeclaration.cs
- EntityCommandCompilationException.cs
- ipaddressinformationcollection.cs
- CodeSnippetStatement.cs
- CodeGeneratorOptions.cs
- QueryableDataSource.cs
- BamlReader.cs
- HttpAsyncResult.cs
- SynchronousChannelMergeEnumerator.cs
- IResourceProvider.cs
- TrustManager.cs
- Convert.cs
- ContentType.cs
- GACIdentityPermission.cs
- Button.cs
- WebEvents.cs
- HtmlSelect.cs
- OAVariantLib.cs
- TemplatePropertyEntry.cs
- FrameworkElementFactoryMarkupObject.cs
- CompilerGlobalScopeAttribute.cs
- ErrorFormatter.cs
- _UriSyntax.cs
- XmlStringTable.cs
- Int32Rect.cs
- TemplatePagerField.cs
- QilStrConcat.cs
- QueryPageSettingsEventArgs.cs
- Control.cs
- HWStack.cs
- ColorContext.cs
- ColorTransformHelper.cs
- WebResponse.cs
- BaseParser.cs
- DockAndAnchorLayout.cs