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
- Journal.cs
- FontFamilyConverter.cs
- NavigateEvent.cs
- TreeViewItemAutomationPeer.cs
- SchemaMapping.cs
- DocumentApplicationJournalEntryEventArgs.cs
- TableLayoutCellPaintEventArgs.cs
- TableCellCollection.cs
- TextParaLineResult.cs
- DBDataPermissionAttribute.cs
- WebPermission.cs
- ReadOnlyKeyedCollection.cs
- ComboBox.cs
- EndpointFilterProvider.cs
- SmtpCommands.cs
- ChildChangedEventArgs.cs
- BindingsSection.cs
- CompilationPass2Task.cs
- DispatcherExceptionFilterEventArgs.cs
- TeredoHelper.cs
- TemplateParser.cs
- PrinterUnitConvert.cs
- XmlQueryContext.cs
- SortKey.cs
- DescendantQuery.cs
- TypedAsyncResult.cs
- FilterElement.cs
- MSHTMLHost.cs
- ConnectionOrientedTransportBindingElement.cs
- DomainUpDown.cs
- LineServices.cs
- PeerToPeerException.cs
- RecordManager.cs
- GridViewAutomationPeer.cs
- DBConnectionString.cs
- ListenerChannelContext.cs
- Graph.cs
- HelpInfo.cs
- StringArrayConverter.cs
- AndMessageFilter.cs
- WinFormsSecurity.cs
- ThicknessAnimationBase.cs
- WriteTimeStream.cs
- InternalPermissions.cs
- PersonalizationStateInfo.cs
- SqlNotificationRequest.cs
- StylusTip.cs
- DataPagerFieldCommandEventArgs.cs
- counter.cs
- ListItemsCollectionEditor.cs
- XsltException.cs
- PageThemeParser.cs
- ProcessHostMapPath.cs
- WsiProfilesElement.cs
- SafeCoTaskMem.cs
- RadioButtonRenderer.cs
- PagerSettings.cs
- ContentPlaceHolder.cs
- SerializationInfo.cs
- DockPanel.cs
- MonitoringDescriptionAttribute.cs
- NativeMethods.cs
- ApplicationBuildProvider.cs
- TextEditor.cs
- NativeMethodsCLR.cs
- DataGridViewLinkCell.cs
- PageBuildProvider.cs
- Helpers.cs
- AssemblyInfo.cs
- ConfigurationSection.cs
- Buffer.cs
- DependencyPropertyAttribute.cs
- OpenTypeLayoutCache.cs
- RegisteredArrayDeclaration.cs
- ToolBar.cs
- DataViewManagerListItemTypeDescriptor.cs
- BitmapImage.cs
- Confirm.cs
- WindowsGraphicsWrapper.cs
- Control.cs
- FieldBuilder.cs
- DataGridTable.cs
- PropertyChangedEventArgs.cs
- DataGridViewCellValidatingEventArgs.cs
- UrlAuthorizationModule.cs
- XmlDesigner.cs
- SystemIPGlobalProperties.cs
- HttpListenerContext.cs
- _HelperAsyncResults.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- TextBoxBase.cs
- AssemblySettingAttributes.cs
- EncodingNLS.cs
- SpeechDetectedEventArgs.cs
- ControlPaint.cs
- Latin1Encoding.cs
- RelationshipWrapper.cs
- MimeMapping.cs
- ObjectSet.cs
- SecurityAlgorithmSuite.cs