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
- HwndKeyboardInputProvider.cs
- ProfileProvider.cs
- RowVisual.cs
- PropertySet.cs
- XmlEnumAttribute.cs
- followingquery.cs
- LabelEditEvent.cs
- FixedSOMContainer.cs
- SelectingProviderEventArgs.cs
- OutputCacheSettingsSection.cs
- OrderedEnumerableRowCollection.cs
- AttributeQuery.cs
- EntityContainerRelationshipSetEnd.cs
- PerformanceCounter.cs
- RequestTimeoutManager.cs
- MenuItemAutomationPeer.cs
- ConfigurationCollectionAttribute.cs
- DataMisalignedException.cs
- PaperSize.cs
- Object.cs
- SqlUserDefinedTypeAttribute.cs
- PackWebRequest.cs
- BridgeDataRecord.cs
- AspNetSynchronizationContext.cs
- ParameterBuilder.cs
- Matrix3DConverter.cs
- DataServiceConfiguration.cs
- SqlFileStream.cs
- SafeNativeMethods.cs
- AvTraceFormat.cs
- WrapPanel.cs
- PowerStatus.cs
- webeventbuffer.cs
- ParameterExpression.cs
- TypeValidationEventArgs.cs
- NamespaceListProperty.cs
- FixedSOMPageElement.cs
- Error.cs
- FlowDocumentPage.cs
- TrackingAnnotationCollection.cs
- MetadataCacheItem.cs
- PolicyException.cs
- GeneralTransform3DTo2DTo3D.cs
- SchemaCollectionCompiler.cs
- CursorInteropHelper.cs
- InfiniteTimeSpanConverter.cs
- XmlUTF8TextReader.cs
- XmlExtensionFunction.cs
- NetworkInformationException.cs
- DataGridViewCellStyleBuilderDialog.cs
- SessionParameter.cs
- UnsafeNativeMethods.cs
- SByteStorage.cs
- MsdtcWrapper.cs
- Substitution.cs
- AnnotationResourceCollection.cs
- SvcMapFile.cs
- AssemblyHash.cs
- SyndicationDeserializer.cs
- ConsoleTraceListener.cs
- ObjectDataSource.cs
- XamlLoadErrorInfo.cs
- TreeBuilderBamlTranslator.cs
- TableColumn.cs
- AvTrace.cs
- WebPartActionVerb.cs
- IisTraceWebEventProvider.cs
- EmptyControlCollection.cs
- ProcessHostConfigUtils.cs
- AttributeInfo.cs
- BrowserCapabilitiesCompiler.cs
- DnsPermission.cs
- loginstatus.cs
- DeflateEmulationStream.cs
- DataRelation.cs
- MailSettingsSection.cs
- WebHttpBehavior.cs
- DefaultProxySection.cs
- QueryableFilterUserControl.cs
- FilterException.cs
- PersistChildrenAttribute.cs
- DoubleCollectionValueSerializer.cs
- PointLightBase.cs
- KerberosSecurityTokenParameters.cs
- TriState.cs
- SerTrace.cs
- WindowsListViewItemStartMenu.cs
- FixedSOMPageConstructor.cs
- ByteStack.cs
- LinearGradientBrush.cs
- CodeDirectiveCollection.cs
- ProfileEventArgs.cs
- NonParentingControl.cs
- LoadedEvent.cs
- DataGridViewLayoutData.cs
- SharedStatics.cs
- XPathParser.cs
- DocumentReferenceCollection.cs
- PageCache.cs
- XmlCharCheckingWriter.cs