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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- InternalTransaction.cs
- Msmq4SubqueuePoisonHandler.cs
- PanelStyle.cs
- Unit.cs
- XmlAnyElementAttributes.cs
- Registry.cs
- FontFamilyConverter.cs
- InkCanvasInnerCanvas.cs
- Line.cs
- AppDomainFactory.cs
- Debug.cs
- TextEncodedRawTextWriter.cs
- ConfigurationManagerInternalFactory.cs
- RegexCaptureCollection.cs
- SmtpNegotiateAuthenticationModule.cs
- OutputCacheProfile.cs
- UserNameSecurityToken.cs
- DataBoundControlAdapter.cs
- StartFileNameEditor.cs
- Int32RectConverter.cs
- FixedTextView.cs
- Debug.cs
- SqlLiftWhereClauses.cs
- Convert.cs
- StrokeNodeEnumerator.cs
- _PooledStream.cs
- InternalMappingException.cs
- TextElementCollection.cs
- FontCacheUtil.cs
- UIElement.cs
- TraceUtility.cs
- SecureConversationServiceCredential.cs
- _DisconnectOverlappedAsyncResult.cs
- DependencyObjectPropertyDescriptor.cs
- PerformanceCounterPermissionEntryCollection.cs
- httpserverutility.cs
- FixedSOMFixedBlock.cs
- Interop.cs
- XpsSerializationManagerAsync.cs
- WindowsStartMenu.cs
- PageBuildProvider.cs
- StartUpEventArgs.cs
- DateTimeSerializationSection.cs
- BaseHashHelper.cs
- StatusBarPanelClickEvent.cs
- DependencyProperty.cs
- LineBreakRecord.cs
- Propagator.JoinPropagator.cs
- SqlMethods.cs
- HttpRequestTraceRecord.cs
- EntityDataSourceReferenceGroup.cs
- MethodBody.cs
- Membership.cs
- XmlArrayItemAttribute.cs
- XmlLoader.cs
- TemplateBindingExpression.cs
- ToolStripOverflow.cs
- LayoutSettings.cs
- TypeInfo.cs
- CompareInfo.cs
- Suspend.cs
- TableColumn.cs
- OleDbErrorCollection.cs
- ReliableChannelBinder.cs
- Variable.cs
- WebWorkflowRole.cs
- ExpressionLexer.cs
- TypeConverter.cs
- ToolStripDropDown.cs
- ToolStripGrip.cs
- JsonEncodingStreamWrapper.cs
- ProcessHost.cs
- StreamHelper.cs
- MouseCaptureWithinProperty.cs
- ProtectedUri.cs
- Label.cs
- DataSourceControl.cs
- EncoderParameter.cs
- CompilerError.cs
- EventArgs.cs
- ActivityStatusChangeEventArgs.cs
- RoleGroupCollectionEditor.cs
- RotateTransform.cs
- SoapExtensionImporter.cs
- ExtensionQuery.cs
- RegistrationServices.cs
- AttributeParameterInfo.cs
- ExpressionPrefixAttribute.cs
- CriticalFinalizerObject.cs
- GridViewPageEventArgs.cs
- OrderPreservingMergeHelper.cs
- InputBuffer.cs
- datacache.cs
- Cursors.cs
- EdmSchemaError.cs
- OverflowException.cs
- Matrix3D.cs
- _ConnectStream.cs
- LambdaExpression.cs
- ReachSerializationUtils.cs