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
- FrameDimension.cs
- HttpServerVarsCollection.cs
- ToolBarButton.cs
- TransactionScope.cs
- CacheModeValueSerializer.cs
- WebPartMenuStyle.cs
- TextEncodedRawTextWriter.cs
- SettingsPropertyValueCollection.cs
- DetailsViewInsertedEventArgs.cs
- webproxy.cs
- ParameterBuilder.cs
- grammarelement.cs
- ObjectDataSourceDesigner.cs
- comcontractssection.cs
- OutputChannelBinder.cs
- DynamicValidator.cs
- UnsafeNativeMethods.cs
- MsmqUri.cs
- Mouse.cs
- ToolTip.cs
- basevalidator.cs
- GlyphShapingProperties.cs
- SystemNetHelpers.cs
- WebEvents.cs
- MexTcpBindingCollectionElement.cs
- DateTimeValueSerializerContext.cs
- CellRelation.cs
- ImageCodecInfo.cs
- Rectangle.cs
- UserNameServiceElement.cs
- ColumnCollection.cs
- JobStaple.cs
- Pair.cs
- TrustManager.cs
- DeclarativeCatalogPart.cs
- SecurityRuntime.cs
- CompiledRegexRunnerFactory.cs
- IxmlLineInfo.cs
- AutomationPatternInfo.cs
- DatatypeImplementation.cs
- Int64.cs
- CounterSampleCalculator.cs
- WebHttpEndpoint.cs
- InternalBufferOverflowException.cs
- autovalidator.cs
- ClientBuildManagerCallback.cs
- ApplicationFileCodeDomTreeGenerator.cs
- PhonemeEventArgs.cs
- PropagatorResult.cs
- PropertyInfo.cs
- XamlSerializerUtil.cs
- DbException.cs
- EdmSchemaError.cs
- SmtpLoginAuthenticationModule.cs
- HtmlForm.cs
- DataGridViewLayoutData.cs
- ServiceDescriptionReflector.cs
- DataGridLength.cs
- ResponseBodyWriter.cs
- MembershipSection.cs
- DrawingContext.cs
- SqlServices.cs
- ComponentCommands.cs
- SoapMessage.cs
- ValueConversionAttribute.cs
- SoapAttributes.cs
- DrawingAttributesDefaultValueFactory.cs
- TextBoxLine.cs
- WebReferencesBuildProvider.cs
- TTSEngineProxy.cs
- GlyphShapingProperties.cs
- VisualBrush.cs
- FlowDocumentPaginator.cs
- DataGridViewCheckBoxCell.cs
- ListBoxItemAutomationPeer.cs
- Site.cs
- ISO2022Encoding.cs
- DataGridCaption.cs
- DataServiceHost.cs
- DESCryptoServiceProvider.cs
- ListViewAutomationPeer.cs
- RegexCompiler.cs
- DrawListViewItemEventArgs.cs
- WindowsSysHeader.cs
- TextBoxView.cs
- PathFigureCollection.cs
- ADConnectionHelper.cs
- SeekStoryboard.cs
- MessageAction.cs
- mediaeventshelper.cs
- ScalarOps.cs
- XmlDownloadManager.cs
- EffectiveValueEntry.cs
- SvcMapFileSerializer.cs
- MouseEventArgs.cs
- GridEntry.cs
- PrintSchema.cs
- VectorAnimation.cs
- Overlapped.cs
- UnsettableComboBox.cs