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
- ModelEditingScope.cs
- ObjectComplexPropertyMapping.cs
- TCPClient.cs
- XsltLibrary.cs
- ResolveMatches11.cs
- Label.cs
- JavaScriptSerializer.cs
- MergePropertyDescriptor.cs
- DllHostedComPlusServiceHost.cs
- PartBasedPackageProperties.cs
- DbProviderConfigurationHandler.cs
- GradientStop.cs
- ListControlDataBindingHandler.cs
- IgnoreSectionHandler.cs
- SimpleBitVector32.cs
- InternalsVisibleToAttribute.cs
- ReadOnlyPropertyMetadata.cs
- DPAPIProtectedConfigurationProvider.cs
- PngBitmapDecoder.cs
- FontFaceLayoutInfo.cs
- ServiceNameCollection.cs
- PropertyTab.cs
- GetWorkflowTree.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- FtpWebResponse.cs
- TimeEnumHelper.cs
- DocumentViewerBaseAutomationPeer.cs
- CachedCompositeFamily.cs
- Message.cs
- TreeNodeBinding.cs
- QueryResponse.cs
- HandlerFactoryCache.cs
- InputMethod.cs
- TrustSection.cs
- MaskedTextBoxTextEditor.cs
- ColorAnimationUsingKeyFrames.cs
- MarshalByValueComponent.cs
- ItemsPanelTemplate.cs
- RtfNavigator.cs
- TextServicesDisplayAttribute.cs
- FileFormatException.cs
- SmiEventSink.cs
- XmlNamespaceManager.cs
- COM2PropertyPageUITypeConverter.cs
- NotifyInputEventArgs.cs
- HtmlControlPersistable.cs
- BuildDependencySet.cs
- DataGridViewControlCollection.cs
- EntityTemplateUserControl.cs
- RowToParametersTransformer.cs
- ResXFileRef.cs
- BamlTreeMap.cs
- CodeIndexerExpression.cs
- WithParamAction.cs
- FileDataSourceCache.cs
- XmlWrappingReader.cs
- ProcessManager.cs
- CodeTypeDeclarationCollection.cs
- BasicSecurityProfileVersion.cs
- ItemList.cs
- ManagedFilter.cs
- AuthenticationException.cs
- nulltextcontainer.cs
- TextEditorParagraphs.cs
- UIAgentMonitorHandle.cs
- _FtpDataStream.cs
- CodeEventReferenceExpression.cs
- Journal.cs
- SortExpressionBuilder.cs
- EntityWrapper.cs
- MinMaxParagraphWidth.cs
- SqlWorkflowPersistenceService.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- DataGridViewTopLeftHeaderCell.cs
- DataGridAutoGeneratingColumnEventArgs.cs
- CompoundFileDeflateTransform.cs
- CSharpCodeProvider.cs
- BlurEffect.cs
- ExpressionBindingCollection.cs
- UiaCoreTypesApi.cs
- ToolBarOverflowPanel.cs
- SystemTcpStatistics.cs
- BrowserCapabilitiesFactory35.cs
- AssociationSetEnd.cs
- ComponentResourceManager.cs
- FeatureSupport.cs
- ValueChangedEventManager.cs
- TreeViewItemAutomationPeer.cs
- HttpHostedTransportConfiguration.cs
- SafeHandle.cs
- XmlAnyElementAttribute.cs
- CaseCqlBlock.cs
- InternalRelationshipCollection.cs
- ClientSettingsStore.cs
- KeyboardNavigation.cs
- InstanceCompleteException.cs
- RealProxy.cs
- TranslateTransform3D.cs
- RegexWriter.cs
- LinkDesigner.cs