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
- Stopwatch.cs
- RemoteWebConfigurationHostStream.cs
- ExtendedPropertyCollection.cs
- ButtonFieldBase.cs
- TextEditorTyping.cs
- ScriptIgnoreAttribute.cs
- BulletedList.cs
- StructuralType.cs
- UnsafeNativeMethods.cs
- DefaultCompensation.cs
- DataGridState.cs
- Module.cs
- EventLogReader.cs
- Matrix3DValueSerializer.cs
- CacheMode.cs
- SymbolResolver.cs
- OdbcConnectionStringbuilder.cs
- ListSourceHelper.cs
- TextPenaltyModule.cs
- DataGridCell.cs
- SamlSecurityToken.cs
- DocumentXmlWriter.cs
- TabItem.cs
- GiveFeedbackEvent.cs
- DataMemberConverter.cs
- FixedSOMPageConstructor.cs
- ResizeGrip.cs
- UniqueIdentifierService.cs
- GeneralTransform2DTo3D.cs
- Win32MouseDevice.cs
- InputEventArgs.cs
- AVElementHelper.cs
- RuntimeHandles.cs
- CustomCredentialPolicy.cs
- WindowsTitleBar.cs
- TrustManagerMoreInformation.cs
- DataTableMappingCollection.cs
- AccessDataSourceView.cs
- StaticFileHandler.cs
- FunctionCommandText.cs
- OrderByLifter.cs
- AtlasWeb.Designer.cs
- FormCollection.cs
- ApplicationId.cs
- log.cs
- DataGridState.cs
- QueryAccessibilityHelpEvent.cs
- InstanceDescriptor.cs
- RemotingException.cs
- ControlIdConverter.cs
- Win32.cs
- ReversePositionQuery.cs
- ServiceMoniker.cs
- StringComparer.cs
- CompositeTypefaceMetrics.cs
- InputScopeConverter.cs
- documentsequencetextcontainer.cs
- MaskedTextBox.cs
- ExceptionValidationRule.cs
- FormViewInsertedEventArgs.cs
- HtmlWindowCollection.cs
- CodePageUtils.cs
- ListDictionary.cs
- LayoutEvent.cs
- MachineKeyConverter.cs
- TableAdapterManagerNameHandler.cs
- GridViewRow.cs
- CurrencyManager.cs
- WebGetAttribute.cs
- IMembershipProvider.cs
- CompilerParameters.cs
- HttpStaticObjectsCollectionWrapper.cs
- AdvancedBindingEditor.cs
- WebRequest.cs
- PrimitiveSchema.cs
- _ListenerAsyncResult.cs
- WebPartConnectionsCloseVerb.cs
- ControllableStoryboardAction.cs
- GridViewColumnCollectionChangedEventArgs.cs
- FixedTextContainer.cs
- XmlnsDictionary.cs
- MetadataSource.cs
- BypassElementCollection.cs
- TransformerInfoCollection.cs
- DynamicQueryableWrapper.cs
- AssemblyResourceLoader.cs
- Win32MouseDevice.cs
- Wizard.cs
- DocumentsTrace.cs
- SafeThemeHandle.cs
- UrlParameterReader.cs
- TargetFrameworkUtil.cs
- QuaternionAnimation.cs
- ObjectDataSourceSelectingEventArgs.cs
- ColumnMapProcessor.cs
- TransformCryptoHandle.cs
- StatusBarItem.cs
- UpdateManifestForBrowserApplication.cs
- XmlSchemaSet.cs
- TemplateColumn.cs