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
- ViewCellSlot.cs
- ExeConfigurationFileMap.cs
- CqlQuery.cs
- UdpReplyToBehavior.cs
- BitmapEncoder.cs
- Delegate.cs
- XmlnsCache.cs
- TableProviderWrapper.cs
- CredentialCache.cs
- ToolTip.cs
- HttpServerProtocol.cs
- CommandConverter.cs
- ElapsedEventArgs.cs
- EntityObject.cs
- SrgsToken.cs
- PolygonHotSpot.cs
- TableProvider.cs
- BinaryCommonClasses.cs
- CompilerCollection.cs
- SimpleTableProvider.cs
- FontUnitConverter.cs
- TypeGenericEnumerableViewSchema.cs
- VerificationAttribute.cs
- SqlFunctionAttribute.cs
- BamlResourceDeserializer.cs
- ApplicationFileCodeDomTreeGenerator.cs
- IndexedString.cs
- TextDecorationUnitValidation.cs
- ReadOnlyObservableCollection.cs
- ProjectionPath.cs
- App.cs
- MimeFormatExtensions.cs
- DictionaryEntry.cs
- ModuleConfigurationInfo.cs
- ExceptionTrace.cs
- EUCJPEncoding.cs
- SoapCodeExporter.cs
- Dynamic.cs
- TextRangeSerialization.cs
- MetadataArtifactLoaderFile.cs
- PropertyIDSet.cs
- __ConsoleStream.cs
- ParserContext.cs
- SynchronizedInputAdaptor.cs
- QueryServiceConfigHandle.cs
- CodeCompiler.cs
- SoapReflectionImporter.cs
- HashCodeCombiner.cs
- Section.cs
- SymmetricAlgorithm.cs
- CounterSampleCalculator.cs
- FragmentQueryProcessor.cs
- ControlPaint.cs
- WebServiceMethodData.cs
- AssociatedControlConverter.cs
- TextElementEnumerator.cs
- ComplexTypeEmitter.cs
- ConcurrentQueue.cs
- CryptoKeySecurity.cs
- AttributeData.cs
- ParseChildrenAsPropertiesAttribute.cs
- HttpClientProtocol.cs
- WindowsSecurityTokenAuthenticator.cs
- DocumentViewerBase.cs
- SignedInfo.cs
- WebScriptMetadataInstanceContextProvider.cs
- UnauthorizedWebPart.cs
- TextEditorTables.cs
- UIServiceHelper.cs
- Processor.cs
- FakeModelItemImpl.cs
- JournalEntryListConverter.cs
- IntegrationExceptionEventArgs.cs
- MediaTimeline.cs
- ComboBoxRenderer.cs
- OrderedDictionary.cs
- ObjectListGeneralPage.cs
- CollectionTypeElement.cs
- ContextStaticAttribute.cs
- IPGlobalProperties.cs
- DataSourceProvider.cs
- MetadataArtifactLoaderCompositeFile.cs
- MsmqOutputSessionChannel.cs
- ListSortDescription.cs
- UIElementCollection.cs
- ElementFactory.cs
- DataListItemEventArgs.cs
- SQLGuid.cs
- GlyphRunDrawing.cs
- VisualStyleRenderer.cs
- MonthCalendar.cs
- DocumentViewer.cs
- processwaithandle.cs
- RectangleHotSpot.cs
- HtmlFormWrapper.cs
- DesignerDataColumn.cs
- ActivationArguments.cs
- GetFileNameResult.cs
- CollectionConverter.cs
- TcpPortSharing.cs