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 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
- PathFigure.cs
- JsonGlobals.cs
- Event.cs
- PasswordTextContainer.cs
- PersonalizationProviderHelper.cs
- HttpInputStream.cs
- SendMailErrorEventArgs.cs
- ToolboxSnapDragDropEventArgs.cs
- HtmlForm.cs
- WebPartEditorApplyVerb.cs
- ProxyWebPart.cs
- ReadOnlyObservableCollection.cs
- _UriSyntax.cs
- OleDbConnectionInternal.cs
- TargetParameterCountException.cs
- TextBoxLine.cs
- BitArray.cs
- BinarySerializer.cs
- SqlNotificationRequest.cs
- EntityKey.cs
- Parser.cs
- FontInfo.cs
- CacheChildrenQuery.cs
- EdmType.cs
- Schema.cs
- UnhandledExceptionEventArgs.cs
- AuthenticationModuleElement.cs
- RootAction.cs
- ClientTargetSection.cs
- GroupStyle.cs
- TextContainerChangedEventArgs.cs
- ObsoleteAttribute.cs
- ISO2022Encoding.cs
- DirectoryObjectSecurity.cs
- OdbcConnectionStringbuilder.cs
- DataGridViewImageColumn.cs
- SQLString.cs
- PassportIdentity.cs
- FlatButtonAppearance.cs
- GeometryDrawing.cs
- HtmlInputSubmit.cs
- DbConnectionPoolOptions.cs
- RawStylusInputCustomData.cs
- DataListCommandEventArgs.cs
- WmpBitmapEncoder.cs
- DataColumnPropertyDescriptor.cs
- ControlIdConverter.cs
- Visitors.cs
- ImageAttributes.cs
- SamlAssertionDirectKeyIdentifierClause.cs
- RepeatInfo.cs
- SqlBulkCopyColumnMapping.cs
- FontCacheUtil.cs
- Button.cs
- XsltLoader.cs
- StringFormat.cs
- ParenExpr.cs
- Cursor.cs
- ResourceExpressionEditor.cs
- GenericTransactionFlowAttribute.cs
- LocatorPart.cs
- NewItemsContextMenuStrip.cs
- ToolStripManager.cs
- CompilerTypeWithParams.cs
- XPathDocumentBuilder.cs
- LiteralControl.cs
- TimeoutException.cs
- HttpCookieCollection.cs
- BasicExpressionVisitor.cs
- basemetadatamappingvisitor.cs
- SelectionItemProviderWrapper.cs
- TimelineClockCollection.cs
- initElementDictionary.cs
- PingReply.cs
- XsdDataContractImporter.cs
- SchemaDeclBase.cs
- Calendar.cs
- ExecutionEngineException.cs
- WebPartDescription.cs
- EDesignUtil.cs
- ReturnEventArgs.cs
- StackSpiller.Bindings.cs
- GetWinFXPath.cs
- ObjectDataSourceChooseTypePanel.cs
- HTTP_SERVICE_CONFIG_URLACL_KEY.cs
- XmlIterators.cs
- XamlToRtfWriter.cs
- SaveFileDialog.cs
- HwndStylusInputProvider.cs
- DataQuery.cs
- ConstantSlot.cs
- EventDescriptor.cs
- BindUriHelper.cs
- ExecutionEngineException.cs
- CompensationDesigner.cs
- VirtualDirectoryMapping.cs
- XPathParser.cs
- Int32.cs
- PermissionSetTriple.cs
- ToolStripRendererSwitcher.cs