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
- Type.cs
- PackageStore.cs
- ReplacementText.cs
- SqlPersonalizationProvider.cs
- BitmapEffectDrawingContextState.cs
- WebPartEditorOkVerb.cs
- TemplateEditingVerb.cs
- DesignerGeometryHelper.cs
- DeferredSelectedIndexReference.cs
- SHA1CryptoServiceProvider.cs
- LinqDataSourceSelectEventArgs.cs
- categoryentry.cs
- InputLanguageProfileNotifySink.cs
- WeakReferenceList.cs
- CounterSet.cs
- DataTableReader.cs
- XslNumber.cs
- PolicyValidationException.cs
- StylusTip.cs
- webproxy.cs
- RuntimeResourceSet.cs
- ProcessRequestArgs.cs
- CodeSubDirectoriesCollection.cs
- HtmlUtf8RawTextWriter.cs
- TreeBuilderBamlTranslator.cs
- RubberbandSelector.cs
- BaseTemplateCodeDomTreeGenerator.cs
- SqlPersonalizationProvider.cs
- LinearKeyFrames.cs
- RichTextBox.cs
- CommandBinding.cs
- MarkedHighlightComponent.cs
- OrderingQueryOperator.cs
- CustomValidator.cs
- Binding.cs
- TextContainer.cs
- TypeDescriptionProviderAttribute.cs
- Group.cs
- PopupEventArgs.cs
- ResourceDefaultValueAttribute.cs
- SQLGuidStorage.cs
- DbConnectionPoolGroupProviderInfo.cs
- ListBoxItemAutomationPeer.cs
- QilInvokeLateBound.cs
- PriorityRange.cs
- FrameworkContextData.cs
- Label.cs
- Wizard.cs
- _IPv6Address.cs
- Types.cs
- WindowsFormsLinkLabel.cs
- DbConnectionStringBuilder.cs
- RuleSettings.cs
- EdmScalarPropertyAttribute.cs
- DataGridToolTip.cs
- ArrangedElement.cs
- QueryValue.cs
- PointValueSerializer.cs
- AttributeCollection.cs
- Schedule.cs
- OutputChannel.cs
- CustomErrorsSection.cs
- Listbox.cs
- ACL.cs
- SchemaHelper.cs
- InputLanguageEventArgs.cs
- PropertyDescriptorCollection.cs
- TransformConverter.cs
- FixedStringLookup.cs
- RawAppCommandInputReport.cs
- XmlTextReaderImplHelpers.cs
- NameSpaceExtractor.cs
- ServiceContractListItem.cs
- AssemblyBuilderData.cs
- FontStretchConverter.cs
- WebEventCodes.cs
- DataGridViewRowsAddedEventArgs.cs
- MdiWindowListItemConverter.cs
- EdmFunction.cs
- ListViewItem.cs
- ConfigurationManager.cs
- Label.cs
- VirtualPathUtility.cs
- RootProfilePropertySettingsCollection.cs
- WindowsAuthenticationModule.cs
- SqlNode.cs
- FixedFlowMap.cs
- ClickablePoint.cs
- ToolboxDataAttribute.cs
- StateManagedCollection.cs
- TextPenaltyModule.cs
- SafeProcessHandle.cs
- ApplicationDirectoryMembershipCondition.cs
- IntSecurity.cs
- SplitterEvent.cs
- Header.cs
- AdjustableArrowCap.cs
- PrimitiveXmlSerializers.cs
- SpotLight.cs
- ControlCollection.cs