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
- ObjectListFieldsPage.cs
- DragDeltaEventArgs.cs
- ExtensionDataReader.cs
- Animatable.cs
- ScriptingScriptResourceHandlerSection.cs
- DataGridCellClipboardEventArgs.cs
- OleDbConnectionFactory.cs
- StylusSystemGestureEventArgs.cs
- CacheVirtualItemsEvent.cs
- DocumentApplicationDocumentViewer.cs
- PeerSecurityHelpers.cs
- GeometryModel3D.cs
- XmlSchemaImport.cs
- CopyAttributesAction.cs
- HttpRequestWrapper.cs
- StrokeSerializer.cs
- WindowsEditBox.cs
- SerializationException.cs
- OAVariantLib.cs
- TransformGroup.cs
- ObjectAnimationUsingKeyFrames.cs
- XmlKeywords.cs
- DataGridViewColumnHeaderCell.cs
- MultiSelectRootGridEntry.cs
- UriScheme.cs
- StaticFileHandler.cs
- Errors.cs
- InternalCache.cs
- SecurityRuntime.cs
- SqlEnums.cs
- Enlistment.cs
- HttpRuntime.cs
- RtType.cs
- BuildProvidersCompiler.cs
- DeadLetterQueue.cs
- VariableQuery.cs
- LineServicesCallbacks.cs
- PixelFormatConverter.cs
- MarkupCompiler.cs
- HtmlHistory.cs
- ImageAttributes.cs
- MulticastNotSupportedException.cs
- CodeIdentifier.cs
- DescendantQuery.cs
- ReadOnlyCollectionBase.cs
- DesignerVerb.cs
- SmtpClient.cs
- XmlSchemaType.cs
- TextElement.cs
- FlowDocumentFormatter.cs
- TextCompositionManager.cs
- ArraySet.cs
- OdbcConnectionStringbuilder.cs
- ItemContainerGenerator.cs
- CustomError.cs
- KeyPullup.cs
- ParameterToken.cs
- QilValidationVisitor.cs
- LayoutTable.cs
- ByteAnimation.cs
- RelatedImageListAttribute.cs
- XmlElementElementCollection.cs
- CustomAttributeSerializer.cs
- Transactions.cs
- WinEventQueueItem.cs
- DataSourceControlBuilder.cs
- SQLInt32.cs
- XmlBoundElement.cs
- SmtpNegotiateAuthenticationModule.cs
- WizardPanel.cs
- WebPartMenu.cs
- ToolboxItemCollection.cs
- ChangePasswordDesigner.cs
- SendingRequestEventArgs.cs
- SmtpDigestAuthenticationModule.cs
- CapabilitiesPattern.cs
- EditorZoneBase.cs
- ImmComposition.cs
- ComponentChangingEvent.cs
- XmlChoiceIdentifierAttribute.cs
- EntryPointNotFoundException.cs
- XmlSecureResolver.cs
- SetterBase.cs
- sqlpipe.cs
- HandledMouseEvent.cs
- Token.cs
- HttpValueCollection.cs
- WebPartChrome.cs
- ApplicationFileParser.cs
- ObjectViewFactory.cs
- DesignBindingConverter.cs
- IncrementalCompileAnalyzer.cs
- BevelBitmapEffect.cs
- CharAnimationUsingKeyFrames.cs
- DefaultTraceListener.cs
- TextTreeInsertElementUndoUnit.cs
- HttpListenerException.cs
- VarRefManager.cs
- XmlJsonReader.cs
- HeaderedContentControl.cs